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.libnameClasses 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)
Издатели могут изменять эти имена при построении интерфейса к библиотеке. Для получения дополнительной информации см. раздел «Настройка имен шаблонов функций».