#include <vector>
struct C
{
std::vector<int> v;
decltype(v.begin()) begin() { return v.begin(); }
decltype(v.end()) end() { return v.end(); }
};
Clang ++ hat kein Problem, aber MSVC 2013 gibt den folgenden Fehler:Warum hat Visual Studio 2013 Probleme mit diesem Deklinationstyp?
error C2228: left of '.begin' must have class/struct/union
Finden Sie unter http://StackOverflow.com/A/11235245/103167, warum dieser Codierungsstil in jedem Compiler gebrochen ist, und Sie sollten trailing-return type für 'declltype' auf Members von' this' verwenden. –