Хм, хотя макросы с переменным числом C99, они не возможны в C ++. Я бы так не делал :) Простая dsl-функция, принимающая std::string
или любой другой строковый класс, используемый вашей платформой, и возвращающий MakeCommand(str)->Exec()->GetResults()
, была бы моей предпочтительной опцией, так как она более удобна для отладки, и вы можете поместить ее в пространство имен.
Вы также сможете динамически создавать командные строки и передавать их функции. Используя ваш макроподход, передача переменной str
фактически передаст функцию "str"
в функцию MakeCommand. Вам понадобится еще один макрос для динамических команд, чтобы он работал, что мне было бы неудобно.