deduce.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 106 行

HPP
106
字号
/*=============================================================================    Copyright (c) 2007 Tobias Schwinger      Use modification and distribution are subject to the Boost Software     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at    http://www.boost.org/LICENSE_1_0.txt).==============================================================================*/#if !defined(BOOST_FUSION_SUPPORT_DEDUCE_HPP_INCLUDED)#define BOOST_FUSION_SUPPORT_DEDUCE_HPP_INCLUDED#include <boost/ref.hpp>namespace boost { namespace fusion { namespace traits{    template <typename T> struct deduce;    //----- ---- --- -- - -  -   -    // Non-references pass unchanged    template <typename T>    struct deduce    {        typedef T type;     };    template <typename T>    struct deduce<T const>    {        typedef T type;    };    template <typename T>    struct deduce<T volatile>    {        typedef T type;    };    template <typename T>    struct deduce<T const volatile>    {        typedef T type;    };    // Keep references on mutable LValues    template <typename T>    struct deduce<T &>    {        typedef T & type;    };    template <typename T>    struct deduce<T volatile&>    {        typedef T volatile& type;    };    // Store away potential RValues    template <typename T>    struct deduce<T const&>    {        typedef T type;    };    template <typename T>    struct deduce<T const volatile&>    {        typedef T type;    };    // Unwrap Boost.RefS (referencee cv is deduced)    template <typename T>    struct deduce<reference_wrapper<T> & >    {        typedef T& type;    };    template <typename T>    struct deduce<reference_wrapper<T> const & >    {        typedef T& type;    };    // Keep references on arrays, even if const    template <typename T, int N>    struct deduce<const T(&)[N]>    {        typedef const T(&type)[N];    };    template <typename T, int N>    struct deduce<const volatile T(&)[N]>    {        typedef const volatile T(&type)[N];    };}}}#endif

⌨️ 快捷键说明

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