是否存在向局部变量添加 const 限定符可能会引入运行时错误的情况?
这是我多次执行过的(诚然是脑死亡的)重构算法: 从一个可以干净编译并且(AFAICT)正常工作的 .cpp 文件开始。 通读该文件,只要有未使用 const 关…
使用 boost::fusion::map 的 const 正确性问题
我正在编写一些使用 boost::fusion::map 的类。下面你会发现一个简化的代码: template struct Object { typedef typename boost::fusion::result_of:…
C 和 C++ 之间的常量正确性有什么区别?
我理解 const 正确性意味着什么,我的问题不是 const 正确性是什么。所以我不期待对此的解释或 C++-FAQ 链接。 我的问题是: C 中的 const 和 C++ 中…
const 成员函数可以返回指向数据成员的非常量指针吗?
代码先行: class A { public: ... int *foo() const { return _px; } private: int *_px; } 成员函数foo返回一个指向private成员_px的非常量指针,我…
堆分配的 const 对象与非 const 对象有何不同?
在 C++ 中,可以在堆上分配 const 对象: const Class* object = new const Class(); const_cast( object )->NonConstMethod(); // UB 这样尝试写入对…
有没有办法摆脱虚拟成员函数的常量性
我需要为接口实现一个模拟,其定义如下: class Foo { public: void sendEvent(int id) const = 0; } 我的模拟类需要保存发送到该类的所有事件 ID。这…
对非常量对象的 const 引用
下面,在将 const 引用用于非 const 对象之前,是否会创建一个临时对象? const int y = 2000; const int &s = y // ok, const reference to const ob…
执行二进制序列化时删除字符串流结果的常量是否安全?
我遇到了一种情况,我正在对某些项目执行二进制序列化,并将它们写入不透明的字节缓冲区: int SerializeToBuffer(unsigned char* buffer) { stringst…
const 正确性和安全 bool 习惯用法
我还有另一个与安全 bool 习惯用法相关的问题: typedef void (Testable::*bool_type)() const; // const necessary? void this_type_does_not_suppor…
为什么很少有人输入 const 正确的代码? const 正确的代码会编译得更好/更快吗?
我非常经常将指针作为函数参数传递给只读参数(例如结构等)。例如,在这个构造函数中: Chunk::Chunk(const string& text, COLOR * background, COLO…
非常量对象的常量向量
在接口中定义函数时: virtual void ModifyPreComputedCoeffs ( std::vector & model_ ) = 0; 我们希望指定向量 model_ 不应更改,即不应在向量上执行…
实现具有常量正确性的可变参数 zip 函数
我正在尝试实现 zip 功能。 zip 的参数均是 wrapped,其中 Ti 因参数而异。 zip 采用这些 wrapped 并生成 wrapped> >,或者换句话说,对其参数的引用…