Ассоциация типов Без decltype

Итак, я застрял при компиляции проекта в visual-studio-2010 и кажется, что decltype не реализовано.

Например:

template <typename T>
struct foo {
    typedef pair<T, T> PointType;
private:
    PointType point;
};

Когда я пытаюсь определить переменную следующим образом:

foo<int> myFoo;
decltype(myFoo)::PointType myBar;

Я получаю сообщение об ошибке:

ошибка C2039: PointType: не является членом «глобального пространства имен»

Я хочу связать тип myBar с типом myFoo. Есть ли другой способ сделать это, или мне не повезло с visual-studio-2010?


person Jonathan Mee    schedule 10.11.2017    source источник
comment
У меня нет VS 2010 для тестирования, но разве вы не хотите, чтобы decltype(myFoo) myBar ассоциировал его с foo или decltype(myFoo.point) myBar с PointType?   -  person zzxyz    schedule 10.11.2017
comment
msdn.microsoft.com/en-us/library /dd537655(v=vs.100).aspx   -  person zzxyz    schedule 10.11.2017
comment
@zzxyz На самом деле это действительно хорошее предложение, но только потому, что я не полностью разработал свой игрушечный пример, в моем коде point является закрытым. Поэтому я не могу использовать тип переменной-члена.   -  person Jonathan Mee    schedule 10.11.2017
comment
Хммм: stackoverflow .com/questions/9291336/   -  person zzxyz    schedule 10.11.2017
comment
@zzxyz Ну, это отличная ссылка. Я не доволен этим ответом, но, похоже, это лучшее, что я могу сделать на данный момент.   -  person Jonathan Mee    schedule 10.11.2017
comment
Да, выглядит....не идеально :)   -  person zzxyz    schedule 10.11.2017
comment
Как насчет использования прямого подхода? typedef foo<int> MyFoo; MyFoo my_foo; MyFoo::PointType my_bar;   -  person user7860670    schedule 10.11.2017
comment
@VTT Итак, мой код отлично работает с компилятором, совместимым с C++11: ideone.com/scGOvP, но myFoo::PointType myBar не нигде не разрешено: ideone.com/hhd21B   -  person Jonathan Mee    schedule 10.11.2017
comment
Да, так что вы можете использовать мое предложение, чтобы заставить его работать.   -  person user7860670    schedule 11.11.2017
comment
@VTT Мне это нравится больше, чем другой связанный вопрос, на самом деле это может быть нашим лучшим выбором :(   -  person Jonathan Mee    schedule 13.11.2017