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 ++では、中括弧は(配列添字演算子)や(関数呼び出し演算子){}とは異なり演算子ではないため、オーバーロードすることはできません。[]()

于 2012-05-10T06:06:07.517 に答える