我几乎可以肯定没有,但我没有找到一个明确的答案:
是否有可能使花括号过载?如:
class Foo
{
int i;
public:
int operator{}(int _i){return _i+42;};
};
int main()
{
Foo f;
f{2};
return 0;
}
从未提及,既不允许也不允许。 gcc 4.6不编译它,但这并不意味着标准不允许它,对吧?
答案 0 :(得分:9)
在C ++中,花括号{}
不是[]
(数组下标运算符)或()
(函数调用运算符)的运算符,因此它们不能重载。