#include <iostream>
1 static_assert
2 std::nothrow
3 std::ref()
4 std::string
1 static_assert
执行编译时断言检查
语法
static_assert ( bool_constexpr , string ) (since C++11)
解释
bool_constexpr一个布尔常量表达式进行评估
string字符串文字,会出现编译错误,如果bool_constexpr是假的
//调试代码,迅速找出代码错在哪一行
#include <iostream> void main()
{
int num();
short sh(); //调试代码,迅速找出代码错在哪一行
static_assert(sizeof(num) >= , "代码报错 num");//因为sizeof(num) == 4,所以为真,编译成功 static_assert(sizeof(sh) > , "error sh");//因为sizeof(sh) == 2,所以为假,编译失败
//error sh system("pause");
}
2 std::nothrow
处理内存耗尽
#include <iostream> struct big
{
double db[20000];
}; void main()
{
big *p; p = new(std::nothrow) big[100000];//处理异常 //p = new big[100000]; if (!p)
{
std::cout << "error" << std::endl;
} system("pause");
}
3 std::ref()
实现引用包装器
//模板函数引用无效,因此需要引用包装器
std::ref(),函数模板直接引用
#include <iostream>
using namespace std; template <class T>
void com(T arg)//模板函数引用无效,因此需要引用包装器
{
arg++;
std::cout << "void com(T arg) " << &arg << std::endl;//地址不一样
} void main()
{
int count();
int & rcount(count);//引用 std::cout << "原来的值" << count << std::endl;// com(&count);//参数是地址 std::cout << "参数是地址" << count << std::endl;//仍然10 com(rcount);//参数是引用 std::cout << "参数是引用" << count << std::endl;//仍然10 std::cout << "main " << &count << std::endl;//地址不一样 //std::ref(变量名),函数模板直接引用
com(std::ref(count)); std::cout << "引用包装器" << count << std::endl;//变成11 system("pause");
}
4 std::string
字符串
//R"(可以把括号内部的转义字符去掉)"
#include <iostream> void main()
{
//R"(可以把括号内部的转义字符去掉)"
std::string path = R"("D:\Program Files\Tencent\QQIntl\Bin\QQ.exe")"; system(path.c_str());//执行 system("pause");
}
#include <iostream>的更多相关文章
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include
问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...
- error RC1015: cannot open include file 'afxres.h' 解决办法
在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...
- Mybatis常用总结:参数,返回,执行sql,include等
1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- JSP中编译指令include与动作指令include的区别
include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...
- C/C++ 中的include
当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...
- 织梦多语言站点,{dede:include filename=''/}引入问题
织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...
- PHP 站点相对包含,路径的问题解决方法(include,require)
以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...
- 如何让include标签包裹的布局置于屏幕最下方?
如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性 a ...
随机推荐
- 获得easyUi dialog 对话框title的属性值
<div id="dlg" class="easyui-dialog" title="Toolbar and Buttons" sty ...
- node.js NPM 使用
n=NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准.有了NPM,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包.npms安装: 下载npm源 ...
- ssh 应用
SSH反向连接及Autossh ssh 隧道: http://www.cnblogs.com/robinyjj/archive/2008/11/02/1325018.html This guy wri ...
- IRC配置for open source community
IRC是开源社区进行交流使用的一个很重要的工具. 但是很多公司有限制,不让在办公电脑上, 安装IRC的客户端. ZNC + weechat 是一个可以替代的 选择. irccloude 也是一个可替代 ...
- C/C++各种系统开发环境搭建
http://pan.baidu.com/s/1qWJKF4g
- 一张图告诉你如何优化web 性能
- javascript实现小九九乘法口诀
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- Dark roads(kruskal)
Dark roads Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
- Clojure 学习入门(19)—— 数组
1.创建数组 1.1 从集合创建数组 into-array into-array (into-array aseq) (into-array type aseq) 演示样例: user=> (i ...
- PHP获取中文汉字首字母方法
function getFirstLetter($str){ $fchar = ord($str{0}); if($fchar >= ord("A") and $fchar ...