私はこのようなものを持っています:
#include <iostream>
namespace N
{
typedef std::pair<int, double> MyPair;
std::ostream& operator << (std::ostream& o, MyPair const & mypair)
{
///
}
}
int main()
{
N::MyPair pr;
std::cout << pr;
}
(残念ながら)に関連付けられていないため、ADL は検出されないoperator<<
ため、これは当然機能しません。私の知る限り、名前空間 std に追加できない場合があるため、std で定義することを選択した場合、それはちょっと違法になります。では...そのような状況ではどうすればよいですか?を明示的に修飾したくはありませんし、書きたくもありません。したがって、質問は次のとおりです。namespace N
MyPair
operator <<
operator <<
using namespace N
- コードをリファクタリングするには?
- ADL が typedef の名前空間を関連付けないのはなぜですか? 深刻な理由?たとえば、この場合はいいでしょう。ありがとう