/*
* File: main.cpp
* Author: Vicky.H
*
*/
//#include <bits/cpp_type_traits.h>
#include <iostream>
namespace cn_vicky {
/** 2两个空白类,没有任何成员,不会带来额外负担,却能通过类型代表真假,可以用于函数特化参数 */
struct __true_type { };
struct __false_type { };
template <class _Tp>
struct __type_traits {
typedef __true_type this_dummy_member_must_be_first;
// 不要移除这个成员
// 它通知能自动特化__type_traits的编译器, 现在这个__type_traits template是特化的
// 这是为了确保万一编译器使用了__type_traits而与此处无任何关联的模板时
// 一切也能顺利运作
// 以下条款应当被遵守, 因为编译器有可能自动生成类型的特化版本
// - 你可以重新安排的成员次序
// - 你可以移除你想移除的成员
// - 一定不可以修改下列成员名称, 却没有修改编译器中的相应名称
// - 新加入的成员被当作一般成员, 除非编译器提供特殊支持
typedef __false_type has_trivial_default_constructor;
typedef __false_type has_trivial_copy_constructor;
typedef __false_type has_trivial_assignment_operator;
typedef _
关于__type_traits的设计思想
最新推荐文章于 2024-03-22 15:10:46 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)