假设我想在名为Constants.h
的头文件中定义一堆数学常数。
默认情况下,常量具有内部链接,因此通过内联它们,我们可以通过外部链接来定义它们(并合法地打破一个定义规则)。
通过包含包含保护措施来强制执行ODR,因为不允许多次重复处理相同的定义。这使我想到我的问题,包括对内联常量或内联函数冗余的警卫吗?
示例
#ifndef CONSTANTS_H
#define CONSTANTS_H
namespace constants
{
inline const double pi { 3.14159265358979323846 };
inline const double e { 2.71828182845904523536 };
inline const double sqrt_2 { 1.41421356237309504880 };
}
#endif