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 {};
到目前为止,我知道我可以创建所有结构成员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 {};