我在头文件中定义了以下函数:
uint32_t get_id(void) const { return m_id; }
我想强制执行一个规则,无论哪个函数调用上面的函数都应该为返回的值添加常量,如:
const uint32_t = const_cast(get_id);
这在C ++中是否可行?
答案 0 :(得分:1)
不,你不能为uint32_t
做到这一点。
您可以做的是定义一个禁止任何修改的类(并将uint32_t
包含为私有成员)并返回该类的对象。
这包括使T operator=(const T&)
不可调用(私有或=delete
),例如, What is The Rule of Three?
您仍然需要一种方法来提取基础uint32_t
- 但至少您会避免意外更改返回值 - 如果这是您尝试解决的潜在问题。