C++相談室 part28
■ このスレッドは過去ログ倉庫に格納されています
0805デフォルトの名無しさん
NGNGなるほど、std::less<int*>などはそもそも間違ってるって事ですね。
template<class _Ty>
struct less : binary_function<_Ty, _Ty, bool> {
bool operator()(const _Ty& _X, const _Ty& _Y) const
{return (_X < _Y); }
};
上のテンプレート(VC6のもの)を参考にしてポインタ型を当てはめてみたんですが、
単なる無意味なアドレス比較に相当するstd::less<int*>などは、
本来エラーが発生しなければいけないって事ですね?
つまり、コンパイラが間違っているorテンプレートが不正って事でOK?
で、模範的な記述に修正すると以下のようにすべきって事ですね。
template<class _Ty>
struct less : binary_function<_Ty, _Ty, bool> {
bool operator()(const _Ty _X, const _Ty _Y) const
{return (_X < _Y); }
};
■ このスレッドは過去ログ倉庫に格納されています