强制实施调用函数应向被调用函数返回的值添加常量的规则

Enforce a rule that calling function should add constantness to value returned by the called function

本文关键字:调用 函数 返回 添加 规则 常量 施调用      更新时间:2023-10-16

我在头文件中定义了以下函数:

uint32_t get_id(void) const { return m_id; }

我想强制执行一个规则,即无论哪个函数调用上述函数,都应该向返回的值添加常量,如:

const uint32_t = const_cast(get_id);

这在C++可能吗?

不,你不能为uint32_t这样做。

您可以做的是定义一个禁止任何修改的类(并将uint32_t作为私有成员包含在内(,并返回该类的对象。

这包括使T operator=(const T&)不可调用(私人或=delete(,例如参见什么是三法则?

您仍然需要一种方法来提取基础uint32_t - 但至少您可以避免返回值的意外更改 - 如果这是您尝试解决的基本问题。