【问题标题】:__forceinline and inline usage__forceinline 和内联用法
【发布时间】:2017-04-23 21:40:30
【问题描述】:

在类中使用 __forceinline 或 inline 时,是否必须在 MSVC 的头文件中包含定义?我听到了不同编译器对此的不同意见。

示例 1:

//some_class.hpp
class some_class
{
public:
   __forceinline void some_function();
   inline void other_function();
};

//some_class.cpp
void some_class::some_function() { }
void some_class::other_function() { }

示例 2:

//some_class.hpp
class some_class
{
public:
   __forceinline void some_function() { }
   inline void other_function() { }
};

【问题讨论】:

    标签: c++ visual-c++ inlining


    【解决方案1】:

    在 MSVC 中,如果函数先前明确声明为 inline__inline__forceinline,则在链接时将函数定义留在 .cpp 文件中会导致 unresolved external symbol 错误。所以我想必须将函数定义放入标题中。这是有道理的,因为为了真正内联函数,它的主体必须可供编译器使用。

    【讨论】:

      猜你喜欢
      • 2012-02-12
      • 2011-02-15
      • 1970-01-01
      • 2023-03-02
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      相关资源
      最近更新 更多