MATLAB® поддерживает шаблоны функции и функции членства C++. Интерфейс C++ генерирует перегрузку функции MATLAB для каждого инстанцирования шаблона функции с помощью допустимого имени MATLAB на основе имени функции C++. Предположим, что у вас есть этот заголовочный файл C++, который задает шаблон функции show
и обеспечивает инстанцирования для типов int
'double'
, и const A
.
class A{}; // User type template<typename T> void show(T a) {} template void show<int>(int); template void show<double>(double); template<> void show<const A &>(const A& a){}
Создайте интерфейс libname
, затем отобразите справку для show
функция. MATLAB отображает синтаксис вызова для трех функций.
help clib.libname.show
clib.libname.show Representation of C++ function show. Inputs a int32 No outputs Other clib.libname.show functions: clib.libname.show Representation of C++ function show. Inputs a double No outputs clib.libname.show Representation of C++ function show. Inputs a read-only clib.libname.A No outputs
Если вы вводите:
var = pi; clib.libname.show(var)
затем MATLAB выбирает подпись с входным типом double
.
Интерфейс C++ также генерирует уникальные имена функций на основе типов подписи. Просмотреть уникальные имена для show
функция, введите:
help clib.libname
Classes contained in clib.libname: A - clib.libname.A Representation of C++ class A. Functions contained in clib.libname: show - clib.libname.show Representation of C++ function show. show_AConst__ - clib.libname.show Representation of C++ function show. show - clib.libname.show Representation of C++ function show. show_double_ - clib.libname.show Representation of C++ function show. show - clib.libname.show Representation of C++ function show. show_int_ - clib.libname.show Representation of C++ function show.
Вызывать специфичную для типа функцию для входа типа double
Ввод:
clib.libname.show_double_(var)
Издатели могут изменить эти имена при создании интерфейса к библиотеке. Для получения дополнительной информации смотрите, Настраивают Имена Шаблона функции.