クラスで演算子が定義されていますが、関連する演算子の定義が不足しています。
このエラーは、クラスを使用しにくくするいくつかの不規則な使用法をレポートします。例えば、"greater than" のような演算子を定義するクラスでは、"less than" などの関連する演算子の定義も指定する必要があります。ユーザーは常に "x less than y" を "y greater than x" に置き換えることもできますが、関連する演算子の完全なセットを定義しておいたほうが良いでしょう。同様に、"+" および代入 ("=") をサポートするクラスでは、"+=" もサポートする必要があります。
このエラーは、クラスで "new" 演算子が定義されているのに、"delete" や "new []" 演算子が定義されていない場合にも出力されます。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
定義 |
クラスが定義された場所 |
#include <new> class A { public: void * operator new(size_t size, void * allocator) throw() { return NULL; } }; int main(int argc, char **argv) { A *a = new (0) A(); return 0; }
© 2010 Intel Corporation. 無断での引用、転載を禁じます。