Как выставить шаблоны из C ++ в C # через C ++ / CLI - PullRequest
3 голосов
/ 11 августа 2011

Я хочу предоставить библиотеку C ++ приложению C #, и я решил использовать подход обертки C ++ / CLI вместо P / Invoke. Проблема, с которой я сейчас сталкиваюсь, заключается в том, как предоставить шаблонный класс в C ++ lib приложению C # с помощью обобщений. На стороне C ++ у меня есть:

template <typename T> class Someclass;

И моя цель - предоставить приложению C # следующий тип

class Someclass<T> {}

Итак, вопрос в том, как должна выглядеть моя оболочка C ++ / CLI. Я попробовал наивный подход и создал шаблонный тип в C ++ / CLI, и, естественно, я не смог создать экземпляр класса в C # с общими параметрами. И если я представлю класс как универсальный класс, я не смогу передать его в C ++.

Отказ от ответственности: Я новичок в C ++, поэтому, пожалуйста, будьте осторожны:)

Я знаком с различиями между шаблонами и шаблонами, поэтому не нужно их объяснять. У меня такое плохое предчувствие, что то, что я хочу, не выполнимо, но, поскольку я относительно новичок в C ++, я надеюсь, что смогу как-то достичь этого.

1 Ответ

0 голосов
/ 11 августа 2011

AFAIK: Вам придется написать универсальный язык C ++.

http://www.codeproject.com/KB/mcpp/cppcligenerics.aspx

Я не понимаю, как приложение C # могло бы даже понимать, что шаблон рассчитывается каквремя компиляции, поэтому приложение C # не увидит шаблоны в DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...