c++ 是否提供了一种使整个结构常量(不可修改)的方法?

Does c++ provide a way to make a whole struct constant (non-modifiable)?

到目前为止,我知道我可以创建所有结构成员const。但是我可以在某个地方写一次const然后让所有成员转向const吗?

换句话说,即使我忘记在变量声明中添加 const 修饰符,我也希望所有结构实例都是 const

const struct Foo {}

由于 const can only be specified for objects and functions 错误,上述方法无效;

虽然您不能创建一个完整的类型 const,但您可以使用 const 限定符为该类型创建一个别名。

struct Foo {};
using ConstFoo = const Foo;
ConstFoo myFoo; // Same as const Foo myFoo;

此处,ConstFoo 充当始终为 const 的类型。

如果您希望将 Foo 保留为 const 类型,您可以使用

using Foo = const struct {};