一、禁止一个类拷贝构造和拷贝赋值

#include <boost/noncopyable.hpp>
using namespace boost;//继承boost::noncopyable即可禁用拷贝构造和拷贝赋值
class do_not_copy : public boost::noncopyable
{};int main()
{do_not_copy d1;
//    do_not_copy d2(d1); //报错
//    do_not_copy d3;
//    d3 = d1;  //报错
}

二、让编译器对一个未使用的变量不报警告

#include <boost/core/ignore_unused.hpp>
int func(int x, int y)
{int i;ignore_unused(x, i);return y;
}

三、函数返回未初始化的无效值

#include <boost/optional.hpp>
using namespace boost;optional<int> getValue(int x)
{if(x > 6)return optional<int>(x*x);elsereturn optional<int>(boost::none);
}int main()
{optional<int> a = getValue(33);if(a.is_initialized())qDebug()<<"a = "<<a.value();elseqDebug()<<"返回值是未初始化的无效值";a = getValue(4);if(a.is_initialized())qDebug()<<"a = "<<a.value();elseqDebug()<<"返回值是未初始化的无效值";
}

条件构造:

#include <boost/optional.hpp>
using namespace boost;optional<int> getValue(int x)
{return optional<int>(x > 6,x*x);
}int main()
{optional<int> a = getValue(33);if(a)qDebug()<<"a = "<<a.value();elseqDebug()<<"返回值是未初始化的无效值";a = getValue(4);if(a)qDebug()<<"a = "<<a.value();elseqDebug()<<"返回值是未初始化的无效值";
}

结果同上。

#include <boost/optional.hpp>
using namespace boost;class test
{
public:test(int value = 0):value(value){}void show(){qDebug()<<value;}private:int value;
};optional<test> getValue(int x)
{return optional<test>(x > 6,test(x));
}int main()
{optional<test> a = getValue(33);if(a)a.value().show();elseqDebug()<<"返回值是未初始化的无效值";a = getValue(4);if(a)a.value().show();elseqDebug()<<"返回值是未初始化的无效值";
}

四、一些容器的重载操作(对Qt不算太实用)

#include <boost/assign.hpp>
using namespace boost;
using namespace boost::assign;int main()
{QList<int> list;push_back(list)(1)(2)(3)(4)(5);qDebug()<<list;push_front(list)(111)(2222)(3333)(444)(555);qDebug()<<list;
}

五、三态bool

#include <boost/logic/tribool.hpp>
#include <boost/logic/tribool_io.hpp>
using namespace boost;int main()
{tribool tb1 = false;tribool tb2 = true;tribool tb3 = indeterminate;//不确定态if(true){}if(false){}if(indeterminate(tb3)){}//    std::cout<<tb1<<" "<<tb2<<" "<<tb3<<std::endl;//0 1 2
}

六、当前函数名称

#include <boost/current_function.hpp>double func(QString str)
{std::cout << __FUNCTION__ << std::endl;std::cout << BOOST_CURRENT_FUNCTION << std::endl;return 0.0;
}int main()
{std::cout << __FUNCTION__ << std::endl;std::cout << BOOST_CURRENT_FUNCTION << std::endl;func(QString());
}

boos:一些实用工具相关推荐

  1. 如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串

    文章编号 : 329290 最后修改 : 2006年4月10日 修订 : 8.0 重要说明:本文包含有关如何修改注册表的信息.修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表 ...

  2. windows installer清理实用工具

    今天编译了一个程序,一个Windows Service卸载命令写错了,导致这个程序不能正常卸载. 只好手动卸载这个Windows Service,之后再卸载程序,依然不能卸载.最后只好使用MSICUU ...

  3. Unix实用工具教程:《sed与awk》修订第三版清晰版

    为什么80%的码农都做不了架构师?>>>    Unix实用工具教程:<sed与awk>修订第三版清晰版 本书介绍了一组名字奇特的Unix实用工具sed和awk,这组实用 ...

  4. ServiceModel 元数据实用工具 (Svcutil.exe)

    ServiceModel 元数据实用工具用于依据元数据文档生成服务模型代码,以及依据服务模型代码生成元数据文档. 在win7系统中的路径为C:\Program Files\Microsoft SDKs ...

  5. Scott Hanselman's 推荐的的实用工具集合(2011版)

    Scott Hanselman活跃于.NET社区,这篇文章来自于它的工具列表,地址是http://www.hanselman.com/tools .NET开发人员应该收藏的工具 LINQPad 快速理 ...

  6. wps右键新建里面没有word和excel_WPS竟然出过这么多实用工具?每个都免费无广告,简直相见恨晚...

    没想到,总被各种吐槽的WPS,竟然还出过这么多实用工具!向你分享4款WPS出品的软件和网站,其中1款让我又爱又恨,而另外几款免费无广告,和三顿一起来看看吧!WPS图片电脑上到底有没有好用的看图软件?这 ...

  7. 十款让 Web 前端开发人员更轻松的实用工具

    这篇文章介绍十款让 Web 前端开发人员生活更轻松的实用工具.每个 Web 开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具, ...

  8. 实用工具类库java.util

    本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日历(Calendar)类来产生和获取日期及时间,提供随机 ...

  9. 工作中常用,实用工具推荐!

    原文:工作中常用,实用工具推荐! Red Gate 家族 大名鼎鼎的RedGate,相信大家都不会陌生,Reflector就是它家做的.这里就不介绍了.我本地安装的是09年下的一个套装,我介绍下常用的 ...

  10. TabelDiff实用工具

    1. tablediff是什么? tablediff 实用工具用于比较两个非收敛的表中的数据,它对于排除复制拓扑中的非收敛故障非常有用. 后来发现SSIS中的Lookup控件同样可以实现对表的比较,而 ...

最新文章

  1. 云消防大数据_大数据在智慧消防中的应用
  2. Spring事务配置探究
  3. 坚持使用GNU/Linux
  4. cordova 更改app版本_ionic项目中使用cordova-hot-code-push插件
  5. 手写自己的MyBatis框架-支持查询缓存
  6. 2023届IC实习小结
  7. c#子线程中打开系统文件操作对话框
  8. nginx 配置 http/2(h2) 和 http 在同一端口的问题
  9. Java Web(五) JSP详解(四大作用域九大内置对象等)
  10. 2字节取值范围_Java注解-元数据、注解分类、内置注解和自定义注解|乐字节
  11. APP发布Xcode7
  12. HTML5 CANVAS 弹幕插件--DanMuer.js(V3.2.5)
  13. #洛谷oj:P2024 [NOI2001] 食物链
  14. python处理实时获取的数据
  15. Js获取屏幕宽度、高度 移动端H5适配
  16. Win10 硬盘图标变成空白解决办法
  17. ehcache 缓存丢失_解决Ehcache缓存警告问题
  18. 2022-2028年全球与中国智能咖啡机行业市场前瞻与投资战略规划分析
  19. 构建虚拟主机(基于域名、端口、IP地址进行构建)
  20. 解读CVPR2020图像翻译最新算法

热门文章

  1. zencart建站后台设计介绍
  2. oracle左联表示,oracle 笔记 IX 之内联、左联、右联
  3. Python新建三维数组并赋值
  4. 客户端软件更新策略 QCryptographicHash
  5. C语言实现贪吃蛇游戏(windows环境)
  6. Hi3559AV100的IR配置
  7. 径向基函数神经网络(RBFNN)详解
  8. linux 添加spi 驱动,Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法
  9. 高分子PEG,Biotin-PEG-amine,Biotin-PEG-NH2,生物素-聚乙二醇-氨基
  10. cadence SPB17.4 - allegro - disable recent Designs list