相关疑难解决方法(0)

为什么我的模板不接受初始化列表

我创建了一个模板如下

template<typename T>
void f(T const& t) { }
Run Code Online (Sandbox Code Playgroud)

我希望这可以通过容器调用,也可以通过初始化列表调用.我认为这将是initializer_list<int>,如下调用.

f({1, 2, 3});
Run Code Online (Sandbox Code Playgroud)

但GCC表现得好像不符合标准

m.cpp: In function 'int main()':
m.cpp:6:25: warning: deducing 'const T' as 'const std::initializer_list<int>'
m.cpp:4:6: warning:   in call to 'void f(const T&) [with T = std::initializer_list<int>]'
m.cpp:6:25: warning:   (you can disable this with -fno-deduce-init-list)
Run Code Online (Sandbox Code Playgroud)

谁能解释我如何在没有警告的情况下完成这项工作?谢谢!

c++ initializer-list c++11

24
推荐指数
1
解决办法
3839
查看次数

标签 统计

c++ ×1

c++11 ×1

initializer-list ×1