C++, 模板元编程, 凭借辅助的模板结构的特化 , 从而以类型控制模板类的分支

u++真是学无止境,遍地地雷,哦不,遍地黄金。

看ue序列化中的TArray有感,特节取部分代码保存,希望能多切近ue的编码经验半分。

 

//...

template <typename T> struct TCanBulkSerialize { enum { Value = false }; };
template<> struct TCanBulkSerialize<unsigned int> { enum { Value = true }; };
template<> struct TCanBulkSerialize<unsigned short> { enum { Value = true }; };
template<> struct TCanBulkSerialize<int> { enum { Value = true }; };

//...

template<typename InElementType, typename InAllocator>
class TArray
{
//...
typedef InElementType ElementType;

//...

if (sizeof(ElementType) == 1 || TCanBulkSerialize<ElementType>::Value)

{
}

//...
}
//...

 

posted @ 2024-12-22 17:03  在找饭吃的陈  阅读(8)  评论(0)    收藏  举报