【发布时间】:2018-07-26 22:44:11
【问题描述】:
这个结构有什么问题?
if((auto idx = diff * 2) <= objRef.size()){
//do something
}
其中 diff 是 ptrdiff_t 类型,而 objRef 是 std::vector 类型。
上述语句产生以下编译错误:
1 In file included from main.cpp:1:
2 ./bt.hpp:597:28: error: expected ')'
3 i
4 if((auto idx = diff * 2) <= objRef.size())
5 f((auto idx = diff * 2) <= objRef.size())
6 ^
7 ./bt.hpp:597:22: note: to match this '('
8 if((auto idx = diff * 2) <= objRef.size())
9 ^
10 ./bt.hpp:597:44: error: expected expression
11 if((auto idx = diff * 2) <= objRef.size())
12 ^
【问题讨论】:
标签: c++ c++11 if-statement assignment-operator auto