std :: begin如何推导出braced-init-list的类型?

时间:2015-03-05 04:55:37

标签: c++ c++11

以下代码失败:

template <typename T>
void func(T& t)
{
}

int main()
{
    func({1, 2, 3});
}

auto a = {1, 2, 3};可以使用auto,因为规则允许std::initializer_list推导std::begin。如何编写std::begin({1, 2, 3})以允许{{1}}工作?

1 个答案:

答案 0 :(得分:7)

std::begin({1, 2, 3})有效,因为std::begin有一个overload taking an std::initializer_list