如何在C++中声明静态常量结构
How do I declare a static const struct in C++?
我有一个LEDControl
类,它使用一种方法设置LED的颜色。许多类使用此LEDControl
类来传递一些颜色以分配给 LED。因此,我想将某处的颜色定义为常量。
我想我会在我的LEDControl
类中制作一个名为 Color
的结构,因为我真的只需要直接访问成员,而不需要其他任何东西:
struct Color{
bool r;
bool g;
bool b;
};
然后我在.cpp中添加了一个 #define
#define RED Color{true, false, false};
但这不起作用;它没有在任何其他类的范围内声明。
我可以做些什么来在我的程序中的某个位置存储一组颜色,以便使用该LEDControl
的每个类都可以使用关键字或变量名称,如 RED 和 GREEN?
不要使用宏,而是提供struct
的inline constexpr
实例:
namespace color
{
inline constexpr Color red{true, false, false};
inline constexpr Color green{false, true, false};
inline constexpr Color blue{false, false, true};
}
您可以在头文件中提供它们,以便可以从包括它在内的任何文件访问它们。
将定义放在标题中。请避免#define
它可能看起来像:
static constexpr Color RED{true, false, false};
相关文章:
- 私有类型的静态常量成员
- 分离一个静态常量 std::thread?
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 我可以在运行时重新定义在 OpenCascade/OCCT 标头中定义的 c++ 静态常量吗?
- 如何为静态常量模板化专用整数值分配存储
- 使用什么代替"静态常量 TCHAR *"
- C++ 模板中的静态常量初始化顺序
- 如何在编译时解析静态常量 std::string?
- 关于静态常量数据模因的声明和定义的混淆
- 将 static_cast<int>(-15) 分配给静态常量字符类型变量
- 为什么在第二类中使用静态常量会在第一类中给出编译器错误?
- 静态常量与常量局部变量,哪一个性能更好
- 如何在模板类中设置静态常量变量
- public:静态常量字符串声明/初始化问题
- 有没有办法声明一个公共静态常量,该常量将使用 constexpr 在源文件中定义(有什么区别)?
- 对静态常量积分类型的未定义引用
- 全局变量中的静态常量与常量
- c++ 类中的静态常量变量和常量变量在存储方面是否有区别
- 避免在静态常量类上定义但不使用
- 指向静态常量对象的共享指针?