tommy

It's hard to tell the world we live in is either a reality or a dream
posts - 52, comments - 17, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
睡不着,继续读书

有时候,范型程序需要根据一个boolean变量来选择某个型别或另一个型别。
下面定义的结构提出了解决方案:
template <bool flag,typename T,typename U>
struct Select
{
    typedef T Result;
}
;
//偏特化
template <typename T,typename U>
struct Select<false,T,U>
{
    typedef U Result;
}
;
也就是说,如果flag是true,则编译器使用第一份定义,即Result被定义为T,
如果是false,则偏特化机制起作用,Result被定义为 U

偏特化真强,全在乎想象力了

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理