Поэтому я недоумеваю, как это работает. Дано:
template <typename T>
int foo(T t) { t.foo(); }
Кажется, что этот вызов должен завершиться неудачно:
decltype(foo(int{ 13 })) fail = 42;
cout << fail << endl;
Вместо он просто печатает:
42
Он работает таким образом на всех компиляторах, к которым у меня есть доступ. Это правильное поведение? Я запрашиваю цитату из стандарта С++.