Я хочу преобразовать код C ++ в код Java в SWIG.В некоторых шаблонах C ++ есть некоторые математические операции с параметрами шаблонов.Например:
template<size_t nbits, size_t es>
value<1 + 2 * (nbits - es)> fma(const posit<nbits, es>& a, const posit<nbits, es>& b, const posit<nbits, es>& c);
Параметры, nbits и es, используются для вычисления параметров значения класса шаблона <...>.Когда я хочу использовать% template (...) для создания экземпляра функции шаблона, fma, например:
%template(fma_32_2) sw::unum::fma<32,2>;
Однако, это не удается и отображается:
error: 'nbits' was not declared in this scope
SwigValueWrapper< sw::unum::value< 1+2*(nbits-es) > > result;
^~~~~
error: 'es' was not declared in this scope
SwigValueWrapper< sw::unum::value< 1+2*(nbits-es) > > result;
^~
error: template argument 1 is invalid
SwigValueWrapper< sw::unum::value< 1+2*(nbits-es) > > result;
^
error: template argument 1 is invalid
SwigValueWrapper< sw::unum::value< 1+2*(nbits-es) > > result;
Итак, есть ли способы исправить это?