在类中使用__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() { }
};
答案 0 :(得分:1)
在MSVC中,.cpp文件中的离开函数定义在链接时会导致unresolved external symbol
错误,如果函数先前已明确声明为inline
,__inline
或__forceinline
。所以我想必须将函数定义放入标题中。这是有道理的,因为为了实际内联函数,它的主体必须可用于编译器。