を与えながら、私が打ち鳴らす上でコンパイルするために、次のコードを取得しようとしていますが、それは次のエラーで失敗します。私は、Visual Studioをコンパイルしようとした関数ポインタはVCにコンパイル++打ち鳴らすはエラー
error: no member named 'operator<' in the global namespace
標準準拠に切り替えるには/ Zaを使用しますが、まだそれを受け入れているようです。私を啓発してください。
struct A
{
int m_test;
A(int test)
: m_test(test)
{
}
friend bool operator<(A left, A right);
};
int main()
{
typedef bool(*TCompare)(A,A);
TCompare compare = &::operator<;
compare(9,7);
}
VC++出力:https://godbolt.org/g/LAz56n
クラン出力:https://godbolt.org/g/zC2InO
ここで、*演算子関数を定義していますか? –