Я следую учебному пособию для boost dll import на VS2013, и все работает нормально, но я не понимаю, почему во фрагменте:
#include <boost/dll/alias.hpp> // for BOOST_DLL_ALIAS
#include "../tutorial_common/my_plugin_api.hpp"
namespace my_namespace {
class my_plugin_aggregator : public my_plugin_api {
float aggr_;
my_plugin_aggregator() : aggr_(0) {}
public:
std::string name() const {
return "aggregator";
}
float calculate(float x, float y) {
aggr_ += x + y;
return aggr_;
}
// Factory method
static boost::shared_ptr<my_plugin_aggregator> create() {
return boost::shared_ptr<my_plugin_aggregator>(
new my_plugin_aggregator()
);
}
};
BOOST_DLL_ALIAS(
my_namespace::my_plugin_aggregator::create, // <-- this function is exported with...
create_plugin // <-- ...this alias name
)
} // namespace my_namespace
Intellisense сообщает об ошибке на BOOST_DLL_ALIAS
, говоря
Ошибка: в этом объявлении нет класса хранения или спецификатора типа
, но код компилируется и выполняется правильно.
Это возможный ложный положительный результат Intellisense или мой код вводит некоторые неопределенные поведение / проблемы и запускается случайно?