В C++ мы имеем operator::
, что позволяет нам делать такие вещи, что:Scope разрешение оператора на объекте
typedef std::pair<A, B> pairAB;
pairAB p;
pairAB::first_type a(42);
pairAB::second_type b("hello world");
p.first = a;
p.second = b;
Я пытался использовать этот оператор на объект этого типа:
pairAB p2;
p2::first_type a2(42);
p2::second_type b2("hello again");
p2.first = a2;
p2.second = b2;
И компилятор показал мне error: C2510: 'p2' : left of '::' must be a class/struct/union
, и я хочу знать, есть ли трюк, который позволяет мне это сделать?
Вы * попробуйте * его? – WhozCraig
@WhozCraig Я отредактировал свой вопрос, чтобы объяснить, о чем вы спрашиваете. – LibertyPaul
Вы имеете в виду что-то вроде 'decltype (p2.first) a2 (42);'? – WhozCraig