2
我的問題是由下面的例子示出:C++中模板內類decltype
#include <vector>
template <class T>
class TestNest{
public:
std::vector<T> m_list;
class InsideNest{
const TestNest<T>* m_test;
decltype(m_test->m_list.begin()) m_iter;
public:
InsideNest(const TestNest<T>* source)
:m_test(source)
,m_iter(source->m_list.begin())
{}
};
};
int main(int argc, char *argv[])
{
TestNest<int> outside;
TestNest<int>::InsideNest inside(&outside);
}
不編譯(至少不是在MSVC2013)的部分是decltype(m_test->m_list.begin())
。任何想法如何解決這個問題?
編輯:改變代碼顯示main()和#包括
你得到了什麼編譯器錯誤? – NathanOliver
錯誤C2227:' - > m_list'的左邊必須指向class/struct/union/generic類型 – IlBeldus
在VS2015中一切正常。請顯示包含。 – alexeykuzmin0