Почему следующий код не работает?Тип макроса для типа не работает
// Template function definition
template <typename T>
void apply(const T& input);
// Helper macro definition
#define APPLY_FUNCTION(PIXELTYPE) \
apply<##PIXELTYPE>(input);
// Use macro to call function
APPLY_FUNCTION(uint8_t);
Это дает следующее сообщение об ошибке:
Error: pasting "<" and "uint8_t" does not give a valid preprocessing token
Даже если вы исправите макрос, где вы получаете 'input', чтобы перейти к функции? – NathanOliver
Макросы не заканчиваются точкой с запятой. –
Не говорите, что вы ошибаетесь, но наличие этого «ввода» внутри вашего макроса, похоже, не является лучшей практикой, которую вы могли бы выбрать. –