我創建了一個模板如下爲什麼沒有我的模板接受初始化列表
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,它沒有被定義爲http://stackoverflow.com/tags/initializer-list/synonyms的同義詞。是否有一些內置邏輯用'x-y'替換'x_y'? – sbi
哦,沒關係,我剛纔看到http://meta.stackexchange.com/questions/75798/unfortunate-auto-detection-of-synonyms-for-initializer-list – sbi