-1
をオーバーロード、C++ typeidのクラスのメンバ演算子の()はgcc 4.8.2で次の手順を実行すると
class A
{
public:
void operator()(int);
void operator()(const std::string&) {}
};
std::cout << typeid(&A::operator()).name() << std::endl;
それはエラーを与える:
error: address of overloaded function with no contextual type information.
それはのような他のクラスのメンバ演算子、のために働きます演算子==。これは、A :: operator()のtypeid()呼び出しで構文上のエラーですか?
EDITS:申し訳ありませんが、私の悪い。この問題は、複数のオーバーロードされたoperator()がある場合に発生します。
は、[私のために仕事]に思える(http://rextester.com/PFM1036) –
は、GCC 6.2 –
申し訳ありませんが、私の悪いで再現することはできません。質問を編集しました。複数のオーバーロードされたoperator()が定義されている場合に発生します。 – surfcode