Я только что обнаружил, что следующий код компилируется как с gcc 5.4, так и с компилятором Intel 18.0.2. Clang 6.0.0 просто дает предупреждение.
#include <vector>
int main() {
std::vector<double> v = v;
return 0;
}
У меня была ошибка в моем коде, которая была очень похожа, и я боюсь, что этот код может скомпилироваться. Мой вопрос:
- Является ли это законным C++? Если да, что он должен делать?
- Как поймать эти "ошибки" во время компиляции?