C++之traits(萃取技术)

 

traits相关总结:
1.typedef 可以在class或者struct中定义
template<T>
class CXX
{
       typedef T value_type;
};
同样,template可以嵌入template!
2.见到template<>多半是在模板特化。特化分全特化、偏特化等。熟记这点,否则有些地方看不懂。
3.template其实就是扩展编译器,让代码自动生成。其功能等同于#define之类。说白了,c++的这些东西就是让你的代码可以重用,减少日后不必要的编程量。
4.traits就目前我们能用到的东西而言,就是它能统一接口,让你的template可以兼容基本类型。
5.一个实例设想:
像WINAPI经常提供诸如XxA和XxW,要跟据使用的ASCII码还是UNICODE码来决定调用。那么可以利用template配合traits来实现——只用template估计不行,ASCII跟UNICODE在有些地方可能是不同的,这些地方就要traits上阵了。

引用几篇文章:
C++ Traitshttp://www.cnblogs.com/hush/archive/2004/03/10/2717.html
《type traits 之”本质论”》http://blog.csdn.net/sanlongcai/archive/2007/09/15/1786647.aspx
traits:Traits技术初探http://www.cppblog.com/woaidongmao/archive/2008/11/09/66387.html(这篇讲得真的很好!)

posted @   大CC  阅读(5959)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
木书架 大CC的博客
点击右上角即可分享
微信分享提示