Толуа и шаблонные методы - PullRequest
       16

Толуа и шаблонные методы

1 голос
/ 21 декабря 2011

Мне нужно привязать простой метод шаблона к LUA, что-то вроде

void addComponent<T>(IComponent*);

Я использую tolua для привязки, но он не поддерживает шаблоны классов / методов (tolua ++ поддерживает шаблоны классов, ноне метод те :)).Есть ли способ связать этот метод вручную?

Заранее спасибо.

1 Ответ

3 голосов
/ 21 декабря 2011

C ++ шаблоны на самом деле не существуют вне компилятора. Существуют шаблонов, но сами шаблоны являются просто конструкцией времени компиляции.

Нет функции с именем void addComponent<T>(IComponent*);. - это функция, вызываемая void addComponent<int>(IComponent*) или void addComponent<float>(IComponent*) или для любого конкретного типа, который вы хотите. Но шаблоны не являются реальными функциями.

Вы можете связать экземпляр шаблона, который является конкретной функцией. Это работает так же, как привязка любой свободной функции в toLua. Имя экземпляра будет, addComponent<TypeName>, где TypeName - это имя конкретного типа, с которым вы хотите создать его экземпляр.

Другими словами, вы не можете связать концепцию addComponent, которая определена для любого типа. Вы можете связать любой фактический addComponent, определенный для определенного типа.

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