zoukankan      html  css  js  c++  java
  • Metafunction

    Metafunction is a more general idiom than type generator. Metafunctions that produce type(s) as a result is used as type generators.

    Appearance:

    • a class template in which all the parameters are types
    • a class with publicly accessible type type

    Intent

    • To encapsulate a complex type computation algorithm
    • To generate a type using compile-time type selection tech

    Metafunction idiom is the principal way of writing compile-time algorithms in C++.

    Implementation of metafunctions is often based on template specializations.

    Example

    template<bool, class L, class R>
    struct IF{
        typedef R type;
    };
    
    template<class L, class R>
    struct IF<true, L, R>{
        typedef L type;
    };
    
    IF<false, int, long>::type i; // long i
    IF<true,  int, long>::type i; // int i
    

    Reference

    More C++ Idioms/Metafunction

  • 相关阅读:
    MVC基础
    图片水印和图片验证码
    Jquery弹窗
    AJAX基础
    Jquery--动画
    Jquery--动画
    JQuery
    LinkQ 组合查询与分页
    LinQ的简单使用
    JavaScript复习
  • 原文地址:https://www.cnblogs.com/nn0p/p/4173001.html
Copyright © 2011-2022 走看看