15.1.23  个模板

15.1.23 个模板

•template<class T>structatomic;

•template< >struct atomic<integral>;

•template<class T>structatomic<T>;

第一个模板声明了模板类atomic。其意义为:一个模板类型为T的原子对象中封装了一个类型为T的值。原子类型对象的主要特点就是从不同线程访问不会导致数据竞争(Data Race),因此从不同线程访问某个原子对象是“良性”(Well-defined)行为;而通常对于非原子类型对象而言,并发访问某个对象(如果不做任何同步操作)会导致未定义(Un-difined)行为发生。

第二个模板是关于整形数据类型的特化实现。其定义式中的符号integral可以代表以下数据类型:char、signed char、unsigned char、short、unsigned short、int、unsigned int、long、unsigned Long、long long、unsigned long long、char16_t、char32_t和wchar_t。

第三个模板是针对指针类型的特化实现。