为了账号安全,请及时绑定邮箱和手机立即绑定

操作符的初始列表和RHS

操作符的初始列表和RHS

C++
慕姐8265434 2019-07-20 14:31:14
操作符的初始列表和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 关注
  • 473 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信