Я хотел бы написать такую же процедуру, как printf, но не функционально, но я бы хотел, чтобы подпрограмма имела те же функции проверки компиляции, что и printf.
Например, если у меня есть:
{
int i;
std::string s;
printf("%d %d",i);
printf("%d",s.c_str());
}
Компилятор жалуется так:
1 cc1plus: warnings being treated as errors
2 In function 'int main()':
3 Line 8: warning: too few arguments for format
4 Line 9: warning: format '%d' expects type 'int', but argument 2 has type 'const char*'
Существуют ли специальные функции printf и co, которые компилятор рассматривает по-разному или есть какой-то трюк, чтобы заставить это работать над любой пользовательской функцией? Конкретные компиляторы, которые меня интересуют, - gcc и msvc