Предполагая, что у меня есть такое же тело для двух шаблонных функций для вызова методов класса, как эти:C++ шаблон функция для метода с параметром константного типа или просто типа
template <typename jsType, typename jsParamType, typename ParamPrivateType = jsParamType::PrivateType, void(PrivateType::*Method)(const ParamPrivateType&)>
static bool SetByRefMethod(JSContext *cx, unsigned argc, JS::Value *vp)
{
...
}
template <typename jsType, typename jsParamType, typename ParamPrivateType = jsParamType::PrivateType, void(PrivateType::*Method)( ParamPrivateType&)>
static bool SetByRefMethod(JSContext *cx, unsigned argc, JS::Value *vp)
{
...
}
Я стараюсь писать, как только body, так что это правильный способ заставить компилятор использовать его, когда вызываемый метод имеет параметр const
и когда он имеет параметр неconst
?
Вы можете взять указатель на функцию в качестве шаблона 'typename Func'. В стороне, ваши шаблоны выглядят странно. – AndyG
Это всего лишь случай, у меня есть другие типы функций для вызова. Я связан с некоторыми сторонними API-интерфейсами, которые я не могу коснуться, поэтому мне нужно использовать шаблоны для параметризации. – mike
Это даже не похоже, что он скомпилируется для меня. Параметры шаблона без дефолта не могут соответствовать параметру шаблона по умолчанию. –