Mein Problem durch das folgende Beispiel veranschaulicht:C++ decltype in Vorlage innere Klasse
#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);
}
der Teil, der nicht kompilieren (zumindest nicht in MSVC2013) ist decltype(m_test->m_list.begin())
. Irgendeine Idee, wie ich das Problem umgehen kann?
EDIT: geändert Code Haupt zeigen() und # include
Welchen Compilerfehler bekommen Sie? – NathanOliver
Fehler C2227: links von '-> m_list' muss auf Klasse/struct/union/generischer Typ zeigen – IlBeldus
In VS2015 ist alles in Ordnung. Bitte zeigen Sie die Includes an. – alexeykuzmin0