大佬教程收集整理的这篇文章主要介绍了c – 在if语句中声明类变量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
if(int a=1) { //... }
出于学习目的,我编写了一个简单的锁机制类:
class SimpleLock { public: class Token { public: friend class SimpleLock; Token(SimpleLock & lock) : lock(lock),locked(!lock.locked.exchange(true)) { } ~Token() { if(locked) lock.locked.store(false); } operator bool() const { return locked; } private: SimpleLock & lock; const bool locked; }; SimpleLock() : locked(false) { } private: std::atomic_bool locked; };
允许我这样做:
SimpleLock::Token t(lock); if(t) //Token has an operator bool() overload { //... }
以下为什么不编译?
if(SimpleLock::Token t(lock)) { //... }
编译错误:
以上是大佬教程为你收集整理的c – 在if语句中声明类变量全部内容,希望文章能够帮你解决c – 在if语句中声明类变量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。