【发布时间】:2011-06-13 01:23:59
【问题描述】:
我创建了一个模板如下
template<typename T>
void f(T const& t) { }
我希望它可以被容器调用,也可以被初始化列表调用。我以为是initializer_list<int>,调用如下。
f({1, 2, 3});
但 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)
谁能解释我如何在没有警告的情况下完成这项工作?谢谢!
【问题讨论】:
-
嗯,SO认为
initializer_list标签是initializer-list的同义词似乎很不幸-.- C++0x会掉眼泪! -
AFAICS,它没有被定义为stackoverflow.com/tags/initializer-list/synonyms 的同义词。是否有一些内置逻辑将
x_y替换为x-y? -
哦,没关系,我刚看到meta.stackexchange.com/questions/75798/…
-
我将只使用 std::initializer_list
标签: c++ c++11 initializer-list