Boost C++ 库

……是世界上最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

宏 BOOST_DLL_ALIAS - Boost C++ 函数库
PrevUpHomeNext

宏 BOOST_DLL_ALIAS

BOOST_DLL_ALIAS — 为导出的函数或变量创建别名。

提要

// In header: <boost/dll/alias.hpp>

BOOST_DLL_ALIAS(FunctionOrVar, AliasName)

描述

当 C++ 名称被混淆(mangled)后变得很长时,此宏非常有用。例如,一个名为 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 用于在特定节中创建别名。

参数

AliasName

别名的名称。必须是有效的 C 标识符。

FunctionOrVar

需要为其创建别名的函数或变量。


PrevUpHomeNext