У меня есть шаблон функции, и я хочу, чтобы вызвать его, используя определить в C++:функции шаблона в
#define CONFIG(key, type, def) getValue<type>(key, def);
Конечно, это не будет работать. Могу ли я сделать что-то вроде этого?
У меня есть шаблон функции, и я хочу, чтобы вызвать его, используя определить в C++:функции шаблона в
#define CONFIG(key, type, def) getValue<type>(key, def);
Конечно, это не будет работать. Могу ли я сделать что-то вроде этого?
Он отлично работает:
template<typename T>
T getValue(int, int) { return T(); }
#define CONFIG(key, type, def) getValue<type>(key, def);
int main()
{
CONFIG(1, int, 2);
return 0;
}
Я передал тип как строку: D Хорошо, спасибо. – Ockonal
И могу ли я использовать значения по умолчанию в define? Например: #define CONFIG (key, type, def = "") ...? – Ockonal
Нет - в этом случае вы хотите определить значение по умолчанию в самом шаблоне, если у вас есть контроль над кодом. – JohnMcG
Реальный вопрос, конечно, поэтому использовать макро ...? Кроме того, у вас будут проблемы, если какой-либо из ваших параметров нуждается в запятой: x –