操作符的初始列表和RHS我不明白為什么初始化程序列表不能在操作員的RHS上使用??紤]:class foo { };struct bar{
template<typename... T>
bar(T const&...) { }};foo& operator<<(foo& f, bar const&) { return f; }int main(){
foo baz;
baz << {1, -2, "foo", 4, 5};
return 0;}最新的Clang(GCC也)抱怨道:clang.cc:14:9: error: initializer list cannot be used on the right hand side of operator '<<'
baz << {1, -2, "foo", 4, 5};
^ ~~~~~~~~~~~~~~~~~~~~
^ ~~~~~~~~~~~~~~~為什么C+標(biāo)準(zhǔn)會禁止這樣做呢?或者換句話來說,為什么這是失敗的,而不是baz << bar{1, -2, "foo", 4, 5};?
操作符的初始列表和RHS
幕布斯6054654
2019-08-03 12:03:42