Я обманывал CNI, чтобы интерполировать код Java и C++ за последние несколько часов.Создание экземпляра класса шаблона в коде CNI/C++
В то время как я искал возможность использовать коллекции Java в качестве замены моей старой команды, отсутствующей libstd
, я попытался создать объект java.util.Stack
и манипулировать им.
Однако компилятор (gcc
и gcj
, в том, что, вероятно, то же самое), кажется, играет свои дешевые трюки на мой невинный ум:
# gcc -g -I. test.cc
test.cc: In function ‘int main(int, char**)’:
test.cc:24:3: error: ‘java::util::Stack’ is not a template
Stack<Person> *stack = new Stack<Person>();
^
test.cc:24:30: error: ‘java::util::Stack’ is not a template
Stack<Person> *stack = new Stack<Person>();
(объект Person хорошо определен класс Java)
Только когда я удалил спецификацию аргумента типа, он позволил мне использовать структуру данных, как если бы аргумент типа был выбран как java.lang.Object
. CNI docs, кажется, ничего не говорит об этом вообще! нет слов о шаблонах.
Кто-нибудь знает об использовании шаблонов в контексте CNI? это поддерживается? Я искал google
и stackoverflow
для ответов, но не мог прийти с малейшей подсказкой. Любая помощь будет оценена по достоинству.
Кроме того, я хотел бы знать, если я использую GCC 2.95.2 (есть ли GCJ для этой версии GCC?)
Я работаю над Virtual Boxed
Ubunto 12
над windows 10
хозяина. Что еще более важно gcj
и gcc
версии стоит на 4.8.4
java --version
урожайности 1.5
и libgcj 4.8.4
Да, это кажется очевидным после вашего объяснения. Наверное, я должен был придумать это сам. Благодарю. – Aviv