Что такое «Выражение SFINAE»?
Вhttp://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx, команда VC ++ официально заявляет, что они еще не реализовали базовую функцию C ++ 11 "Выражение СФИНАЕ ", Тем не менее, следующие примеры кода скопированы изhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html принимаются компилятором VC ++.
пример 1:
template struct A {};
char xxx(int);
char xxx(float);
template A f(T){}
int main()
{
f(1);
}
пример 2:
struct X {};
struct Y
{
Y(X){}
};
template auto f(T t1, T t2) -> decltype(t1 + t2); // #1
X f(Y, Y); // #2
X x1, x2;
X x3 = f(x1, x2); // deduction fails on #1 (cannot add X+X), calls #2
Мой вопрос: что такоеВыражение СФИНАЕ "?