C++11老关键字的新含义(auto, using,extern)

C++11对关键字进行了修订,加入了nullptr、constexpr、decltype、default、static_assert等,同时原有的关键字(auto,using,extern)含义和用途进行了修订。在这里主要了解一下对auto、using、extern这三个关键字的修订。

auto

自动化变量

auto a = 12;
auto b = 12.0f;
auto c = true;
auto d = [] (int x)->int{ return 12;};
auto e = std::bind(&func, _1);

延迟绑定

template<typename T, typename L>
auto fun(T x, L y)->decltype(x + y){return x;}

using

定义别名

template<typename T>
using Tlist = std::list<T>;
using Tlist = std::list<char>;
using df = void(*)();//等价于typedef void(*df)()

使用外部构造

using A::A;

引入外部类型

using typename A;

extern

外部模板

extern template<typename T>void(T t);

你可能感兴趣的:(C++,C++11)