Macro BOOST_DLL_ALIAS
BOOST_DLL_ALIAS — Makes an alias name for exported function or variable.
Synopsis
BOOST_DLL_ALIAS(FunctionOrVar, AliasName)
Description
Этот макрос полезен в случае длинных искажённых имен C++. Например, некоторое имя функции void boost::foo(std::sting)
изменится на что-то вроде N5boostN3foosE
после манглинга. Импортная функция по имени N5boostN3foosE
не выглядит удобной для пользователя, особенно если предположить, что разные компиляторы имеют разные схемы обработки. AliasName - это имя, которое не будет искалечено и может использоваться в качестве портативного импортного имени.
Может использоваться в любом пространстве имен, в том числе глобальном. Функция OrVar должен быть полностью квалифицирован, чтобы можно было принять его адрес. Допускается несколько различных псевдонимов для одной переменной / функции.
Убедитесь, что AliasNames уникальны для каждой библиотеки. Функции или переменные в глобальном пространстве имен не должны иметь имен, подобных AliasNames.
Одно и то же имя AliasName в разных единицах перевода должно указывать на одну и ту же функцию.
Помещает все псевдонимы в "boostdll" читать только раздел двоичного файла. Равно BOOST_DLL_ALIAS_SECTIONED (FunctionOrVar, AliasName, boostdll).
Пример:
namespace foo {
void bar(std::string&);
BOOST_DLL_ALIAS(foo::bar, foo_bar)
}
BOOST_DLL_ALIAS(foo::bar, foo_bar_another_alias_name)
См.: BOOST_DLL_ALIAS_SECTIONED для создания псевдонимов в конкретном разделе.
Параметры: |
Имя псевдонима <14
|
Имя псевдонима. Должен быть действительный идентификатор C. |
FunctionOrVar
|
Функция или переменная, для которой должен быть создан псевдоним. |
|