Я не знаю, может ли это быть достигнуто с помощью шаблонов с вариациями, маркеров с вариадами или даже с помощью метапрограммирования.
В основном, у меня есть объект журналирования, подобный этому:
LOG << "This is the value of variable X: " << varaibleX;
но я также хочу, чтобы это можно было использовать LOG
как функцию
LOG ( "This is the value of variable X: ", variableX);
но количество аргументов может быть разным. (при условии, что их вызов может быть преобразован в потоки)
Я смотрел на LOG ( ... )
, но действительно не знал, как расширить аргументы.
Так скажем, кто-то написал
LOG(X, Y, Z);
и я хочу расширить это на:
LOG << X << Y << Z;
Можно ли это сделать?