Используя Clang 3.5, 3.6 или 3.7, с флагом std=c++1y
следующий код не компилируется:
#include <iostream>
auto foo(auto bar) { return bar; }
int main() {
std::cout << foo(5.0f) << std::endl;
}
Указанная ошибка:
ошибка: "авто" не разрешено в прототипе функции
У меня нет ошибок с помощью g++ 4.9. Является ли эта ошибка результатом, потому что Clang еще не выполнил эту функциональную функцию еще или это потому, что мне не разрешено это делать, и GCC каким-то образом разрешает это?