Следующий кусок кода не компилируется на x64 MSVC v19.43 VS17.13 < /strong> с аргументами командной строки /Std: C ++ последняя /ZA /Wall /O2 < /code>. Тем не менее, он собирается на последних версиях GCC и Clang.
Следующий кусок кода не компилируется на x64 MSVC v19.43 VS17.13 < /strong> с аргументами командной строки /Std: C ++ последняя /ZA /Wall /O2 < /code>. Тем не менее, он собирается на последних версиях GCC и Clang.[code]#include #include #include
template class TestClass { std::vector children; public: using iterator = typename std::vector::iterator; std::ranges::subrange getChildren(); };
int main() {
TestClass obj;
return 0; }
template std::ranges::subrange TestClass::getChildren() { /* ... */ } [/code] Использование Auto в качестве возврата типа для getChildren () (как в объявлении, так и в определении) сделает MSVC компилировать это.