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

📄 string_literal.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
// Copyright David Abrahams 2002.// Distributed under 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)#ifndef STRING_LITERAL_DWA2002629_HPP# define STRING_LITERAL_DWA2002629_HPP# include <cstddef># include <boost/type.hpp># include <boost/type_traits/array_traits.hpp># include <boost/type_traits/same_traits.hpp># include <boost/mpl/bool.hpp># include <boost/detail/workaround.hpp>namespace boost { namespace python { namespace detail { # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATIONtemplate <class T>struct is_string_literal : mpl::false_{};#  if !defined(__MWERKS__) || __MWERKS__ > 0x2407template <std::size_t n>struct is_string_literal<char const[n]> : mpl::true_{};#   if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590040)) \  || (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730)// This compiler mistakenly gets the type of string literals as char*// instead of char[NN].template <>struct is_string_literal<char* const> : mpl::true_{};#   endif#  else// CWPro7 has trouble with the array type deduction abovetemplate <class T, std::size_t n>struct is_string_literal<T[n]>    : is_same<T, char const>{};#  endif # elsetemplate <bool is_array = true>struct string_literal_helper{    typedef char (&yes_string_literal)[1];    typedef char (&no_string_literal)[2];    template <class T>    struct apply    {        typedef apply<T> self;        static T x;        static yes_string_literal check(char const*);        static no_string_literal check(char*);        static no_string_literal check(void const volatile*);                BOOST_STATIC_CONSTANT(            bool, value = sizeof(self::check(x)) == sizeof(yes_string_literal));        typedef mpl::bool_<value> type;    };};template <>struct string_literal_helper<false>{    template <class T>    struct apply : mpl::false_    {    };};template <class T>struct is_string_literal    : string_literal_helper<is_array<T>::value>::apply<T>{};# endif}}} // namespace boost::python::detail#endif // STRING_LITERAL_DWA2002629_HPP

⌨️ 快捷键说明

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