Я смотрел на следующей функции шаблона и было интересно, что происходит за кулисами, когда мы относим enable_if
типа к typename
ключевому слову:Назначение типа в TYPENAME ключевое слово
template <typename T, typename = std::enable_if<std::is_pointer<T>::value>::type>
// ^^ What happens here?
void foo()
{
std::cout << "T is a pointer!" << std::endl;
}
Другое то очевидное SFINAE, компилятор действительно что-то с этим делает? Возможно, он генерирует какой-то анонимный тип?
Благодаря
Это [неопределенный шаблонный параметр] (http://stackoverflow.com/questions/6718094/anonymous-template-typename-class-declarations) с аргументом по умолчанию. – LogicStuff