在MSVC2010下面的代碼提供:
error C2039: 'my_type' : is not a member of ''global namespace''
如何從一個對象實例得到一個成員的typedef
template<typename T>
class C
{
public:
typedef T my_type;
};
C<int> c;
auto f = [&c]() {
decltype(c)::my_type v2; // ERROR C2039
};
我找到了一個跛腳的方式來解決它,但我想知道什麼的正確方法是當你只有一個對象實例時纔得到typedef。
升級你的編譯器版本或依賴或解決方法,一個在我腦海中是'身份 ::類型:: my_type V2;'和'模板結構身份{typedef的T形; };' –
完美,謝謝!我不確定這是VC2010問題,還是我不知道該怎麼做。 – tukra
你不需要捕獲'c'(如果它是全局的或靜態的)。 – 0x499602D2