c++11-创新互联

一、无异常保证

noexcept
void function() noexcept{}函数不抛出任何异常,减少异常处理的成本,提高运行效率

网站建设、成都做网站过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。成都创新互联还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。二、内联名字空间
inline namespace temp{int xx = 0;
}
assert(xx==0);//无需名字空间限制,可直接访问

namespace release{namespace v001{void func(){}
	}
	inline namespace v002{void func(){}
	}
}
release::func();//调用v002版

多个子命名空间对外只暴露一个,很好的隔离版本间的差异,利于维护

三、强制枚举类型

c++中的枚举是弱类型,相当于整数,c++11/14可以用enum class/struct的形式声明强类型引用,它不能被隐式转换为整形,使用也必须使用类型名限定访问枚举值,就像类的静态成员一样
还使用char、int 等,指示枚举使用的整数类型

enum class color:char{}//枚举使用char类型存储
enum {red=1,green=2,blue=3
};
assert(red == green-1);
int red = 1;
enum class color{...}
auto x = color::red;
auto y = red; //错误必须添加限定名
auto z = color::red -1; //错误不能隐式转换成整形
四、属性

[[attribute]]标记编译特征,指示编译器做某种程度的优化

[[deprecated]] int x = 0; //x已经被废弃
class [[deprecated]] demo{};//demo 已经被废弃
五、语言版本

宏__cplusplus是个整形常数
199711L c++98/03
201103L c++11
201402L c++14
可用于条件编译的判断逻辑

#if __cplusplus< 201103L
	#error ""
#endif
六、超长整形

long long 至少是64位
LL/ll ULL/ull/uLL显示说明整形是long long

auto a = 11111LL;
auto b = 2222222ULL;
七、原始字符串

R"(…)"

string s = R"(this is a "\string\")";
cout<

还支持最多16个字符的delimiter,()两边必须相同,且不能是@ $ \等特殊字符

a = R"***(dark souls)***";
八、自定义字面值

字面值需要重载"“函数名必须以_开头
return_type operator”" _suffix(unsinged long long );

long operator"" _kb(unsigned long long v)
{return v * 1024;}
auto x = 2_kb;
assert(x==2*1024);实际值20148

c++14增加的自定义字面值
h/min/s/ms

auto t1 = 2min;//2分钟
auto t2 = 30s;//30秒
auto s = "std string type"s;//标准字符串,不是秒
七、其他

1、右尖括号
“>>“优先解释为模板,而不是按位右移
2、函数的默认模板参数
模板函数可以使用默认参数
3、增强联合体
可以有构造/析构函数和成员函数,但是不能有虚函数和引用成员
4、二进制字面值
0b /0B直接书写二进制数字

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:c++11-创新互联
当前URL:http://scyanting.com/article/dpssij.html