代码之家  ›  专栏  ›  技术社区  ›  c_m_l

导出dll中的整个类或仅导出其方法以避免C4251警告

  •  0
  • c_m_l  · 技术社区  · 2 年前

    当我导出一个包含STL对象unique_ptr的类时,我的编译器会生成C4251警告,告诉我必须完全指定unique_ptr。

    class IMPORT_EXPORT_API Factory
    {
        std::unique_ptr<ClassA> impl{ nullptr };
    
    public:
        std::unique_ptr<ClassB> create();
    
    }
    

    然而,当我只导出一个同时返回STL对象的方法,而不是整个类时,我不会得到错误。

    class Factory
    {
        std::unique_ptr<ClassA> impl{ nullptr };
    
    public:
        IMPORT_EXPORT_API std::unique_ptr<ClassB> create();
    
    }
    

    为什么会这样?

    0 回复  |  直到 2 年前