Допустимо ли "dllexport" класс C ++, когда все функции определены в заголовке? - PullRequest
0 голосов
/ 31 октября 2019

Вот класс из движка Google V8 Javascript. Это dllexport, но все функции полностью определены в заголовочном файле. Допустим ли dllexport класс в C ++, когда все функции определены в заголовке? Я предполагаю, что класс не будет определен ни в одном модуле компиляции и не будет в конечном итоге экспортирован изDLL.

Может иметь значение, что этот конкретный класс является вложенным классом в другом классе, v8::Isolate.

Мои платформы, на случай, если это уместнона этот вопрос Windows 10 / MSVC ++ 2017 и Ubuntu 18.04 / GCC.

  /**
   * Stack-allocated class which sets the isolate for all operations
   * executed within a local scope.
   */
  class V8_EXPORT Scope {
   public:
    explicit Scope(Isolate* isolate) : isolate_(isolate) {
      isolate->Enter();
    }

    ~Scope() { isolate_->Exit(); }

    // Prevent copying of Scope objects.
    Scope(const Scope&) = delete;
    Scope& operator=(const Scope&) = delete;

   private:
    Isolate* const isolate_;
  };
...