BOOST_DLL_ALIAS Intellisense ошибка, но код компилируется - PullRequest
0 голосов
/ 27 февраля 2020

Я следую учебному пособию для 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 или мой код вводит некоторые неопределенные поведение / проблемы и запускается случайно?

...