Например, это не скомпилируется:
std::function<decltype(printf)> my_printf(printf);
В gcc сообщение об ошибке читается:
error: variable 'std::function<int(const char*, ...)> my_printf' has initializer but incomplete type
std::function<decltype(printf)> my_printf(printf);
Сначала я думал, что это ошибка в gcc, но затем я посмотрел на стандарт, и похоже, что это просто не поддерживается. Какая техническая причина для этого?