#include <vector>
struct C
{
std::vector<int> v;
decltype(v.begin()) begin() { return v.begin(); }
decltype(v.end()) end() { return v.end(); }
};
У Clang++ нет проблем, но MSVC 2013 дает следующую ошибку:
error C2228: left of '.begin' must have class/struct/union