操作符的初始列表和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+标准会禁止这样做呢?或者换句话来说,为什么这是失败的,而不是baz << bar{1, -2, "foo", 4, 5};?
2 回答
- 2 回答
- 0 关注
- 251 浏览
添加回答
举报
0/150
提交
取消