我找到了以下代码:
class BOOST_FILESYSTEM_DECL path
{
};
Run Code Online (Sandbox Code Playgroud)
通常以这种方式定义类:
class Baloon
{
};
Run Code Online (Sandbox Code Playgroud)
我怎样才能在班级宣言中有两个条款?有人知道BOOST_FILESYSTEM_DECL用于什么(升级库)?
如果你看看它是如何定义的,一切都会很清楚:
#ifdef BOOST_HAS_DECLSPEC // defined in config system
// we need to import/export our code only if the user has specifically
// asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost
// libraries to be dynamically linked, or BOOST_FILESYSTEM_DYN_LINK
// if they want just this one to be dynamically liked:
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK)
// export if this is our own source, otherwise import:
#ifdef BOOST_FILESYSTEM_SOURCE
# define BOOST_FILESYSTEM_DECL __declspec(dllexport)
#else
# define BOOST_FILESYSTEM_DECL __declspec(dllimport)
#endif // BOOST_FILESYSTEM_SOURCE
#endif // DYN_LINK
#endif // BOOST_HAS_DECLSPEC
//
// if BOOST_FILESYSTEM_DECL isn't defined yet define it now:
#ifndef BOOST_FILESYSTEM_DECL
#define BOOST_FILESYSTEM_DECL
#endif
Run Code Online (Sandbox Code Playgroud)
如你所见,它是一个宏.它会扩展为__declspec(dllexport)或者为__declspec(dllimport)空,具体取决于其他宏.有关declspec说明符的更多详细信息,请参阅此答案.简而言之,它是动态链接所需的平台特定功能.