Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
printf на шаблонах и без рекурсии
((printFmt(), std::cout << args), ..., (printFmt()));args... на просто список через запятую. Я привел список того, как можно раскрывать пакет. В данном случае — в список инициализации. Ваш пример просто не скомпилируется.printf на вариативных шаблонах не сможет выдать compile-time ошибку несоответвия формата, т.к. шаблон (const char*) нельзя передать в constexpr функцию на проверку. Разве что хаком с _s из boost::hana, но он использует нестандартизированное расширение языка в GCC и Clang, да и компилироваться такая конструкция будет неспешно.
C++: сеанс спонтанной археологии и почему не стоит использовать вариативные функции в стиле C