c++新特性-收缩转换,二进制,constexpr,以及namespace&&inline

char(112312312);//不会检查是否超过范围,会截断

char{12345435345};//会报异常,异常如下:

error C2397: 从“__int64”转换到“char”需要收缩转换
 warning C4305: “初始化”: 从“__int64”到“char”截断
warning C4309: “初始化”: 截断常量值

 

c++14二进制支持(0b) 即int a=0b1001;//9,0B1101(13)

constexpr标志返回值或其他表达式是常量,用于返回常量可以用于需要常量表达式的等数组中

constexpr int get()

{

  return 100;

}

int a[10+get()];//可以

inline 在命名空间新特性:namespace&& inline

#include <algorithm>
#include <iostream>
#include <functional>
#include <vector>
#include <numeric>
#include <array>
#include <cstring>
#include <cstdio>
using namespace  std;
namespace all{
    namespace V2017
    {
        void fun(int num){ cout << "int V2017" << endl; }

    }
}
namespace all {
    //展开在all,默认调用
    inline namespace V2018
    {
        void fun(int num){ cout << "int V2018" << endl; }
        void fun(double num){ cout << "double V2018" << endl; }

    }
}
int main()
{
    all::V2017::fun(12);//明确调用
    all::V2018::fun(16);
    all:fun(1);//默认调用
    system("pause");

}

 

posted @ 2019-08-04 16:13  白伟碧一些小心得  阅读(1601)  评论(0编辑  收藏  举报