the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 81 lines 2.0 kB view raw
1 2#ifndef BOOST_MPL_NEGATE_HPP_INCLUDED 3#define BOOST_MPL_NEGATE_HPP_INCLUDED 4 5// Copyright Aleksey Gurtovoy 2000-2004 6// 7// Distributed under the Boost Software License, Version 1.0. 8// (See accompanying file LICENSE_1_0.txt or copy at 9// http://www.boost.org/LICENSE_1_0.txt) 10// 11// See http://www.boost.org/libs/mpl for documentation. 12 13// $Id: negate.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ 14// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ 15// $Revision: 49267 $ 16 17#include <boost/mpl/integral_c.hpp> 18#include <boost/mpl/aux_/msvc_eti_base.hpp> 19#include <boost/mpl/aux_/na_spec.hpp> 20#include <boost/mpl/aux_/lambda_support.hpp> 21#include <boost/mpl/aux_/config/eti.hpp> 22#include <boost/mpl/aux_/config/integral.hpp> 23#include <boost/mpl/aux_/config/static_constant.hpp> 24 25namespace boost { namespace mpl { 26 27template< typename Tag > struct negate_impl; 28 29template< typename T > struct negate_tag 30{ 31 typedef typename T::tag type; 32}; 33 34template< 35 typename BOOST_MPL_AUX_NA_PARAM(N) 36 > 37struct negate 38#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) 39 : negate_impl< 40 typename negate_tag<N>::type 41 >::template apply<N>::type 42#else 43 : aux::msvc_eti_base< typename apply_wrap1< 44 negate_impl< typename negate_tag<N>::type > 45 , N 46 >::type >::type 47#endif 48{ 49 BOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N)) 50}; 51 52BOOST_MPL_AUX_NA_SPEC(1, negate) 53 54 55#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) 56namespace aux { 57template< typename T, T n > struct negate_wknd 58{ 59 BOOST_STATIC_CONSTANT(T, value = -n); 60 typedef integral_c<T,value> type; 61}; 62} 63#endif 64 65template<> 66struct negate_impl<integral_c_tag> 67{ 68#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) 69 template< typename N > struct apply 70 : aux::negate_wknd< typename N::value_type, N::value > 71#else 72 template< typename N > struct apply 73 : integral_c< typename N::value_type, (-N::value) > 74#endif 75 { 76 }; 77}; 78 79}} 80 81#endif // BOOST_MPL_NEGATE_HPP_INCLUDED