2

我几乎可以肯定不是,但我没有找到一个明确的答案:

是否可以超载花括号?如:

class Foo
{
    int i;
    public:
    int operator{}(int _i){return _i+42;};    
};

int main()
{
    Foo f;
    f{2};
    return 0;
}

它从未被提及,既不被允许也不被允许。gcc 4.6 不编译它,但这并不意味着标准不允许它,对吧?

4

1 回答 1

11

在 C++ 中,花括号{}[](Array subscripting operator) 或()(Function call operator) 不同,因此它们不能被重载。

于 2012-05-10T06:06:07.517 回答