BOOST_DLL_ALIAS — 为导出的函数或变量创建别名。
// In header: <boost/dll/alias.hpp>
BOOST_DLL_ALIAS(FunctionOrVar, AliasName)此宏在 C++ 名称过长且经过混淆时非常有用。例如,`void boost::foo(std::string)` 的函数名经过混淆后会变成类似 `N5boostN3foosE` 的名称。使用 `N5boostN3foosE` 导入函数名称并不用户友好,尤其考虑到不同编译器有不同的名称混淆方案。AliasName 是一个不会被混淆的名称,可以用作可移植的导入名称。
可以在任何命名空间中使用,包括全局命名空间。FunctionOrVar 必须是完全限定的,以便能够获取其地址。允许为一个变量/函数创建多个不同的别名。
确保 AliasNames 在每个库/可执行文件中是唯一的。全局命名空间中的函数或变量不能有与 AliasNames 相同的名称。
不同翻译单元中的相同 AliasName 必须指向同一个 FunctionOrVar。
将所有别名放入二进制文件的 **"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 用于在特定节中创建别名。
参数 |
|