⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if_.rst

📁 C++的一个好库。。。现在很流行
💻 RST
字号:
.. Metafunctions/Type Selection//if_ |10

if\_
====

Synopsis
--------

.. parsed-literal::
    
    template< 
          typename C
        , typename T1
        , typename T2
        >
    struct if\_
    {
        typedef |unspecified| type;
    };



Description
-----------

Returns one of its two arguments, ``T1`` or ``T2``, depending on the value ``C``.


Header
------

.. parsed-literal::
    
    #include <boost/mpl/if.hpp>


Parameters
----------

+---------------+-----------------------------------+-----------------------------------------------+
| Parameter     | Requirement                       | Description                                   |
+===============+===================================+===============================================+
| ``C``         | |Integral Constant|               | A selection condition.                        |
+---------------+-----------------------------------+-----------------------------------------------+
| ``T1``, ``T2``| Any type                          | Types to select from.                         |
+---------------+-----------------------------------+-----------------------------------------------+


Expression semantics
--------------------

For any |Integral Constant| ``c`` and arbitrary types ``t1``, ``t2``:


.. parsed-literal::

    typedef if_<c,t1,t2>::type t;

:Return type:
    Any type.

:Semantics:
    If ``c::value == true``, ``t`` is identical to ``t1``; otherwise ``t`` is 
    identical to ``t2``.


Example
-------

.. parsed-literal::
    
    typedef if\_<true\_,char,long>::type t1;
    typedef if\_<false\_,char,long>::type t2;

    BOOST_MPL_ASSERT(( is_same<t1, char> ));
    BOOST_MPL_ASSERT(( is_same<t2, long> ));


See also
--------

|Metafunctions|, |Integral Constant|, |if_c|, |eval_if|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -