所以我发现需要使用像Boost.Extension这样的东西来让我的应用程序对新模块更加开放。但是当我到first tutorial时,我发现它的语法与我习惯的不一样:
// Depending on the compiler and settings,
// it may be necessary to add a specific export
// declaration. The BOOST_EXTENSION_EXPORT_DECL
// adds this if necessary.
void BOOST_EXTENSION_EXPORT_DECL
boost_extension_hello_world(int repetitions) {
for (int i = 0; i < repetitions; ++i) {
std::cout << "Hello World" << std::endl;
}
}
我想写一些像void function
而不是void BOOST_EXTENSION_EXPORT_DECL
这样的东西看起来更好,因为我有AS3背景,对我来说看起来不会太可怕。
那么如何为C ++宏创建一个覆盖,而不是在它定义的头文件中但是在你自己的C ++文件中?
答案 0 :(得分:1)
您之前可以写下以下内容:
#define function BOOST_EXTENSION_EXPORT_DECL
然后说出这样的函数:
void function
boost_extension_hello_world(int repetitions) {
for (int i = 0; i < repetitions; ++i) {
std::cout << "Hello World" << std::endl;
}
}
答案 1 :(得分:0)
#define function BOOST_EXTENSION_EXPORT_DECL
答案 2 :(得分:0)
您可以将BOOST_EXTENSION_EXPORT_DECL
替换为function
:
#define function BOOST_EXTENSION_EXPORT_DECL
然后您可以通过以下方式使用它:
void function boost_extension_hello_world(int repetitions) {
for (int i = 0; i < repetitions; ++i) {
std::cout << "Hello World" << std::endl;
}
}
但如果您的代码包含单词function
,这可能会导致问题,因为编译器会替换所有function
。