我想在标记为const的对象上执行只读方法,但为了线程安全地执行此操作,我需要锁定读写器互斥体:constValueObject::list()const{ScopedReadlock(children_);...}但这会中断,因为编译器提示“children_”是const等等。我去了ScopedRead类和RWMutex类(children_是一个子类)以允许read_lock在const对象上,但我必须写这个:inlinevoidread_lock()const{pthread_rwlock_rdlock(const_cast(&rwlock_));}我一直了解到const_ca
我正在查看一位同事的代码,我看到他在全局范围内定义了几个常量:conststring&SomeConstant="Thisissomeconstanttext";就我个人而言,这对我来说很糟糕,因为引用指的是我假设是从给定char数组构造的“匿名”对象。从语法上讲,它是合法的(至少在VC++7中),而且它似乎可以运行,但实际上我宁愿让他删除&,这样它的作用就不会模棱两可了。那么,这真的安全合法吗?我很着迷?正在构造的临时对象是否有保证的生命周期?我一直认为以这种方式使用的匿名对象在使用后会被破坏......所以我的问题也可以推广到匿名对象的生命周期。标准是否规定了匿名对象的生命周期?它
我正在查看一位同事的代码,我看到他在全局范围内定义了几个常量:conststring&SomeConstant="Thisissomeconstanttext";就我个人而言,这对我来说很糟糕,因为引用指的是我假设是从给定char数组构造的“匿名”对象。从语法上讲,它是合法的(至少在VC++7中),而且它似乎可以运行,但实际上我宁愿让他删除&,这样它的作用就不会模棱两可了。那么,这真的安全合法吗?我很着迷?正在构造的临时对象是否有保证的生命周期?我一直认为以这种方式使用的匿名对象在使用后会被破坏......所以我的问题也可以推广到匿名对象的生命周期。标准是否规定了匿名对象的生命周期?它