boos:一些实用工具
一、禁止一个类拷贝构造和拷贝赋值
#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:一些实用工具相关推荐
- 如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
文章编号 : 329290 最后修改 : 2006年4月10日 修订 : 8.0 重要说明:本文包含有关如何修改注册表的信息.修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表 ...
- windows installer清理实用工具
今天编译了一个程序,一个Windows Service卸载命令写错了,导致这个程序不能正常卸载. 只好手动卸载这个Windows Service,之后再卸载程序,依然不能卸载.最后只好使用MSICUU ...
- Unix实用工具教程:《sed与awk》修订第三版清晰版
为什么80%的码农都做不了架构师?>>> Unix实用工具教程:<sed与awk>修订第三版清晰版 本书介绍了一组名字奇特的Unix实用工具sed和awk,这组实用 ...
- ServiceModel 元数据实用工具 (Svcutil.exe)
ServiceModel 元数据实用工具用于依据元数据文档生成服务模型代码,以及依据服务模型代码生成元数据文档. 在win7系统中的路径为C:\Program Files\Microsoft SDKs ...
- Scott Hanselman's 推荐的的实用工具集合(2011版)
Scott Hanselman活跃于.NET社区,这篇文章来自于它的工具列表,地址是http://www.hanselman.com/tools .NET开发人员应该收藏的工具 LINQPad 快速理 ...
- wps右键新建里面没有word和excel_WPS竟然出过这么多实用工具?每个都免费无广告,简直相见恨晚...
没想到,总被各种吐槽的WPS,竟然还出过这么多实用工具!向你分享4款WPS出品的软件和网站,其中1款让我又爱又恨,而另外几款免费无广告,和三顿一起来看看吧!WPS图片电脑上到底有没有好用的看图软件?这 ...
- 十款让 Web 前端开发人员更轻松的实用工具
这篇文章介绍十款让 Web 前端开发人员生活更轻松的实用工具.每个 Web 开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具, ...
- 实用工具类库java.util
本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日历(Calendar)类来产生和获取日期及时间,提供随机 ...
- 工作中常用,实用工具推荐!
原文:工作中常用,实用工具推荐! Red Gate 家族 大名鼎鼎的RedGate,相信大家都不会陌生,Reflector就是它家做的.这里就不介绍了.我本地安装的是09年下的一个套装,我介绍下常用的 ...
- TabelDiff实用工具
1. tablediff是什么? tablediff 实用工具用于比较两个非收敛的表中的数据,它对于排除复制拓扑中的非收敛故障非常有用. 后来发现SSIS中的Lookup控件同样可以实现对表的比较,而 ...
最新文章
- 云消防大数据_大数据在智慧消防中的应用
- Spring事务配置探究
- 坚持使用GNU/Linux
- cordova 更改app版本_ionic项目中使用cordova-hot-code-push插件
- 手写自己的MyBatis框架-支持查询缓存
- 2023届IC实习小结
- c#子线程中打开系统文件操作对话框
- nginx 配置 http/2(h2) 和 http 在同一端口的问题
- Java Web(五) JSP详解(四大作用域九大内置对象等)
- 2字节取值范围_Java注解-元数据、注解分类、内置注解和自定义注解|乐字节
- APP发布Xcode7
- HTML5 CANVAS 弹幕插件--DanMuer.js(V3.2.5)
- #洛谷oj:P2024 [NOI2001] 食物链
- python处理实时获取的数据
- Js获取屏幕宽度、高度 移动端H5适配
- Win10 硬盘图标变成空白解决办法
- ehcache 缓存丢失_解决Ehcache缓存警告问题
- 2022-2028年全球与中国智能咖啡机行业市场前瞻与投资战略规划分析
- 构建虚拟主机(基于域名、端口、IP地址进行构建)
- 解读CVPR2020图像翻译最新算法
热门文章
- zencart建站后台设计介绍
- oracle左联表示,oracle 笔记 IX 之内联、左联、右联
- Python新建三维数组并赋值
- 客户端软件更新策略 QCryptographicHash
- C语言实现贪吃蛇游戏(windows环境)
- Hi3559AV100的IR配置
- 径向基函数神经网络(RBFNN)详解
- linux 添加spi 驱动,Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法
- 高分子PEG,Biotin-PEG-amine,Biotin-PEG-NH2,生物素-聚乙二醇-氨基
- cadence SPB17.4 - allegro - disable recent Designs list