Я заметил, что если я скомпилирую это
int x() { }
, я получаю предупреждение, как обычно:
$ clang++-7 -pthread -std=c++17 -o main main.cpp
main.cpp:5:11: warning: control reaches end of non-void
function [-Wreturn-type]
int x() { }
^
1 warning generated.
$ ./main
однако, если функция принимает какие-либо аргументы шаблона:
template <typename y>
int x() { }
предупреждения не появляются.
$ clang++-7 -pthread -std=c++17 -o main main.cpp
$ ./main
Это ошибка в компиляторе?