├── alexandrescu ├── example.cpp └── test_expected.cpp ├── std_optional ├── n3527-std_optional_r4.pdf └── n3527-std_optional_r4.html ├── deps └── boost │ ├── smart_ptr │ ├── detail │ │ ├── atomic_count_gcc.hpp │ │ ├── lwm_nop.hpp │ │ ├── atomic_count_sync.hpp │ │ ├── atomic_count_win32.hpp │ │ ├── sp_has_sync.hpp │ │ ├── lightweight_mutex.hpp │ │ ├── operator_bool.hpp │ │ ├── spinlock_pt.hpp │ │ ├── spinlock.hpp │ │ ├── spinlock_nt.hpp │ │ ├── atomic_count_gcc_x86.hpp │ │ ├── spinlock_sync.hpp │ │ ├── sp_convertible.hpp │ │ └── lwm_pthreads.hpp │ └── bad_weak_ptr.hpp │ ├── config │ ├── abi │ │ ├── msvc_suffix.hpp │ │ ├── borland_suffix.hpp │ │ ├── msvc_prefix.hpp │ │ └── borland_prefix.hpp │ ├── platform │ │ ├── amigaos.hpp │ │ ├── cray.hpp │ │ ├── beos.hpp │ │ ├── solaris.hpp │ │ ├── vms.hpp │ │ ├── qnxnto.hpp │ │ ├── irix.hpp │ │ ├── vxworks.hpp │ │ ├── aix.hpp │ │ └── cygwin.hpp │ ├── compiler │ │ ├── compaq_cxx.hpp │ │ ├── sgi_mipspro.hpp │ │ ├── greenhills.hpp │ │ ├── nvcc.hpp │ │ ├── kai.hpp │ │ └── comeau.hpp │ ├── abi_prefix.hpp │ ├── abi_suffix.hpp │ ├── no_tr1 │ │ ├── cmath.hpp │ │ ├── memory.hpp │ │ ├── complex.hpp │ │ ├── utility.hpp │ │ └── functional.hpp │ ├── stdlib │ │ ├── libcpp.hpp │ │ ├── modena.hpp │ │ └── vacpp.hpp │ └── warning_disable.hpp │ ├── type.hpp │ ├── scoped_ptr.hpp │ ├── type_traits │ ├── detail │ │ ├── size_t_trait_undef.hpp │ │ ├── wrap.hpp │ │ ├── type_trait_undef.hpp │ │ ├── yes_no_type.hpp │ │ ├── false_result.hpp │ │ ├── ice_not.hpp │ │ ├── template_arity_spec.hpp │ │ ├── bool_trait_undef.hpp │ │ ├── ice_eq.hpp │ │ ├── ice_and.hpp │ │ ├── ice_or.hpp │ │ ├── type_trait_def.hpp │ │ └── size_t_trait_def.hpp │ ├── ice.hpp │ ├── is_rvalue_reference.hpp │ ├── is_float.hpp │ ├── is_void.hpp │ ├── is_reference.hpp │ ├── msvc │ │ ├── typeof.hpp │ │ ├── remove_bounds.hpp │ │ └── remove_reference.hpp │ ├── integral_constant.hpp │ ├── is_arithmetic.hpp │ └── is_union.hpp │ ├── exception │ └── detail │ │ └── attribute_noreturn.hpp │ ├── shared_ptr.hpp │ ├── preprocessor │ ├── facilities │ │ ├── empty.hpp │ │ ├── identity.hpp │ │ └── overload.hpp │ ├── punctuation │ │ ├── comma.hpp │ │ └── comma_if.hpp │ ├── inc.hpp │ ├── empty.hpp │ ├── iterate.hpp │ ├── repeat.hpp │ ├── identity.hpp │ ├── comma_if.hpp │ ├── enum_params.hpp │ ├── iteration │ │ ├── self.hpp │ │ ├── detail │ │ │ └── self.hpp │ │ └── local.hpp │ ├── control │ │ ├── if.hpp │ │ ├── expr_iif.hpp │ │ └── iif.hpp │ ├── logical │ │ ├── and.hpp │ │ ├── compl.hpp │ │ └── bitand.hpp │ ├── cat.hpp │ ├── array │ │ ├── data.hpp │ │ ├── size.hpp │ │ └── elem.hpp │ ├── detail │ │ └── is_binary.hpp │ ├── slot │ │ └── slot.hpp │ ├── list │ │ ├── fold_right.hpp │ │ ├── append.hpp │ │ └── reverse.hpp │ ├── debug │ │ └── error.hpp │ ├── repetition │ │ └── enum_params.hpp │ └── arithmetic │ │ ├── sub.hpp │ │ └── add.hpp │ ├── mpl │ ├── aux_ │ │ ├── config │ │ │ ├── msvc.hpp │ │ │ ├── workaround.hpp │ │ │ ├── intel.hpp │ │ │ ├── gcc.hpp │ │ │ ├── static_constant.hpp │ │ │ ├── ctps.hpp │ │ │ ├── arrays.hpp │ │ │ ├── overload_resolution.hpp │ │ │ ├── lambda.hpp │ │ │ ├── nttp.hpp │ │ │ ├── integral.hpp │ │ │ ├── preprocessor.hpp │ │ │ ├── ttp.hpp │ │ │ ├── eti.hpp │ │ │ ├── adl.hpp │ │ │ └── dtp.hpp │ │ ├── template_arity_fwd.hpp │ │ ├── na_fwd.hpp │ │ ├── lambda_arity_param.hpp │ │ ├── static_cast.hpp │ │ ├── nttp_decl.hpp │ │ ├── arity.hpp │ │ ├── preprocessor │ │ │ ├── filter_params.hpp │ │ │ ├── tuple.hpp │ │ │ └── enum.hpp │ │ ├── yes_no.hpp │ │ └── adl_barrier.hpp │ ├── int.hpp │ ├── limits │ │ └── arity.hpp │ ├── void_fwd.hpp │ ├── size_t.hpp │ ├── int_fwd.hpp │ ├── integral_c_tag.hpp │ ├── size_t_fwd.hpp │ ├── bool_fwd.hpp │ ├── integral_c_fwd.hpp │ ├── bool.hpp │ ├── lambda_fwd.hpp │ └── integral_c.hpp │ ├── non_type.hpp │ ├── detail │ └── lightweight_mutex.hpp │ ├── version.hpp │ ├── memory_order.hpp │ ├── current_function.hpp │ └── checked_delete.hpp ├── codeblocks.workspace ├── .gitattributes ├── moene ├── static_visitor.h ├── required.hpp └── test_required.cpp ├── .gitignore ├── hagan ├── return_code.hpp ├── return_code_fg.hpp ├── test_return_code.cpp └── test_return_code_fg.cpp ├── examples ├── test_expected_minimal.cpp ├── test_expected_use_policy.cpp ├── example_collection.cpp ├── expected_minimal.hpp ├── example_inplace.cpp └── example_disengaged.cpp ├── LICENSE_1_0.txt ├── nonco └── test_expected.cpp └── exception_c++11.hpp /alexandrescu/example.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martinmoene/spike-expected/HEAD/alexandrescu/example.cpp -------------------------------------------------------------------------------- /std_optional/n3527-std_optional_r4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martinmoene/spike-expected/HEAD/std_optional/n3527-std_optional_r4.pdf -------------------------------------------------------------------------------- /std_optional/n3527-std_optional_r4.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martinmoene/spike-expected/HEAD/std_optional/n3527-std_optional_r4.html -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/atomic_count_gcc.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martinmoene/spike-expected/HEAD/deps/boost/smart_ptr/detail/atomic_count_gcc.hpp -------------------------------------------------------------------------------- /codeblocks.workspace: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /deps/boost/config/abi/msvc_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma pack(pop) 7 | 8 | 9 | -------------------------------------------------------------------------------- /deps/boost/config/abi/borland_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | # pragma option pop 7 | #pragma nopushoptwarn 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /deps/boost/config/platform/amigaos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #define BOOST_PLATFORM "AmigaOS" 9 | 10 | #define BOOST_DISABLE_THREADS 11 | #define BOOST_NO_CWCHAR 12 | #define BOOST_NO_STD_WSTRING 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | 16 | -------------------------------------------------------------------------------- /deps/boost/config/platform/cray.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2011. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // SGI Irix specific config options: 10 | 11 | #define BOOST_PLATFORM "Cray" 12 | 13 | // boilerplate code: 14 | #define BOOST_HAS_UNISTD_H 15 | #include 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /deps/boost/type.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright David Abrahams 2001. 2 | // Distributed under the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_TYPE_DWA20010120_HPP 7 | # define BOOST_TYPE_DWA20010120_HPP 8 | 9 | namespace boost { 10 | 11 | // Just a simple "type envelope". Useful in various contexts, mostly to work 12 | // around some MSVC deficiencies. 13 | template 14 | struct type {}; 15 | 16 | } 17 | 18 | #endif // BOOST_TYPE_DWA20010120_HPP 19 | -------------------------------------------------------------------------------- /deps/boost/scoped_ptr.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED 2 | #define BOOST_SCOPED_PTR_HPP_INCLUDED 3 | 4 | // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. 5 | // Copyright (c) 2001, 2002 Peter Dimov 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. (See 8 | // accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // http://www.boost.org/libs/smart_ptr/scoped_ptr.htm 12 | // 13 | 14 | #include 15 | 16 | #endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /moene/static_visitor.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #ifndef NONSTD_STATIC_VISITOR_H_INCLUDED 8 | #define NONSTD_STATIC_VISITOR_H_INCLUDED 9 | 10 | namespace nonstd { 11 | 12 | template 13 | class static_visitor 14 | { 15 | public: 16 | typedef T result_type; 17 | }; 18 | 19 | } 20 | 21 | #endif // NONSTD_STATIC_VISITOR_H_INCLUDED 22 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/size_t_trait_undef.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 12 | // $Revision: 1944 $ 13 | 14 | #undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1 15 | #undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1 16 | #undef BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1 17 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/compaq_cxx.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Tru64 C++ compiler setup (now HP): 9 | 10 | #define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // versions check: 16 | // Nothing to do here? 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /deps/boost/exception/detail/attribute_noreturn.hpp: -------------------------------------------------------------------------------- 1 | //Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc. 2 | 3 | //Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef UUID_61531AB0680611DEADD5846855D89593 7 | #define UUID_61531AB0680611DEADD5846855D89593 8 | 9 | #if defined(_MSC_VER) 10 | #define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn) 11 | #elif defined(__GNUC__) 12 | #define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__)) 13 | #else 14 | #define BOOST_ATTRIBUTE_NORETURN 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /deps/boost/shared_ptr.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SHARED_PTR_HPP_INCLUDED 2 | #define BOOST_SHARED_PTR_HPP_INCLUDED 3 | 4 | // 5 | // shared_ptr.hpp 6 | // 7 | // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. 8 | // Copyright (c) 2001-2008 Peter Dimov 9 | // 10 | // Distributed under the Boost Software License, Version 1.0. (See 11 | // accompanying file LICENSE_1_0.txt or copy at 12 | // http://www.boost.org/LICENSE_1_0.txt) 13 | // 14 | // See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. 15 | // 16 | 17 | #include 18 | 19 | #endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/facilities/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 16 | # 17 | # /* BOOST_PP_EMPTY */ 18 | # 19 | # define BOOST_PP_EMPTY() 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/punctuation/comma.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 16 | # 17 | # /* BOOST_PP_COMMA */ 18 | # 19 | # define BOOST_PP_COMMA() , 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/wrap.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright David Abrahams 2002. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TT_DETAIL_WRAP_HPP_INCLUDED 9 | #define BOOST_TT_DETAIL_WRAP_HPP_INCLUDED 10 | 11 | namespace boost { 12 | namespace type_traits { 13 | 14 | template struct wrap {}; 15 | 16 | }} // namespace boost::type_traits 17 | 18 | #endif // BOOST_TT_DETAIL_WRAP_HPP_INCLUDED 19 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/msvc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: msvc.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | 18 | // BOOST_MSVC is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/workaround.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: workaround.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/intel.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 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: intel.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | 18 | // BOOST_INTEL_CXX_VERSION is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /deps/boost/mpl/int.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_HPP_INCLUDED 3 | #define BOOST_MPL_INT_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: int.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE int 20 | #include 21 | 22 | #endif // BOOST_MPL_INT_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /deps/boost/config/platform/beos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // BeOS specific config options: 9 | 10 | #define BOOST_PLATFORM "BeOS" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_CWCTYPE 14 | #define BOOST_HAS_UNISTD_H 15 | 16 | #define BOOST_HAS_BETHREADS 17 | 18 | #ifndef BOOST_DISABLE_THREADS 19 | # define BOOST_HAS_THREADS 20 | #endif 21 | 22 | // boilerplate code: 23 | #include 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /deps/boost/mpl/limits/arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 3 | #define BOOST_MPL_LIMITS_ARITY_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: arity.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) 18 | # define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 19 | #endif 20 | 21 | #endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/facilities/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_IDENTITY */ 20 | # 21 | # define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/type_trait_undef.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 12 | // $Revision: 1944 $ 13 | 14 | #undef BOOST_TT_AUX_TYPE_TRAIT_DEF1 15 | #undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1 16 | #undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 17 | #undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1 18 | #undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2 19 | #undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1 20 | -------------------------------------------------------------------------------- /deps/boost/non_type.hpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------- 2 | // 3 | // (C) Copyright Gennaro Prota 2003. 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // ------------------------------------------------------ 10 | 11 | #ifndef BOOST_NON_TYPE_HPP_GP_20030417 12 | #define BOOST_NON_TYPE_HPP_GP_20030417 13 | 14 | 15 | namespace boost { 16 | 17 | // Just a simple "envelope" for non-type template parameters. Useful 18 | // to work around some MSVC deficiencies. 19 | 20 | template 21 | struct non_type { }; 22 | 23 | 24 | } 25 | 26 | 27 | #endif // include guard 28 | -------------------------------------------------------------------------------- /deps/boost/detail/lightweight_mutex.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 2 | #define BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/lightweight_mutex.hpp - lightweight mutex 12 | // 13 | // Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. 16 | // See accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt 18 | // 19 | 20 | #include 21 | 22 | #endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.bak 2 | *.bmarks 3 | *.build 4 | *.pbxuser 5 | *.mode1v3 6 | *.suo 7 | *.obj 8 | *.exe 9 | *.lnt 10 | *.ncb 11 | *.opt 12 | *.ilk 13 | *.pdb 14 | *.plg 15 | *.user 16 | *.xcuserstate 17 | .DS_Store 18 | Debug 19 | Release 20 | xcuserdata 21 | CatchSelfTest.xcscheme 22 | Breakpoints.xcbkptlist 23 | projects/VS2010/TestCatch/_UpgradeReport_Files/ 24 | projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters 25 | projects/VisualStudio/TestCatch/UpgradeLog.XML 26 | UpgradeLog.XML 27 | projects/XCode4/iOSTest/Build/Intermediates/PrecompiledHeaders 28 | projects/XCode4/iOSTest/Build/Products/Debug-iphonesimulator/iOSTest.app.dSYM/Contents/Resources/DWARF 29 | projects/XCode4/iOSTest/Build 30 | projects/XCode4/CatchSelfTest/DerivedData 31 | projects/XCode4/OCTest/DerivedData 32 | -------------------------------------------------------------------------------- /hagan/return_code.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2000 Ken Hagan 2 | // Exploding return codes. 3 | // https://groups.google.com/forum/#!msg/comp.lang.c++.moderated/BkZqPfoq3ys/H_PMR8Sat4oJ 4 | 5 | #ifndef HAGAN_EXPLODING_RETURN_CODE_H_INCLUDED 6 | #define HAGAN_EXPLODING_RETURN_CODE_H_INCLUDED 7 | 8 | class return_code 9 | { 10 | long m_rc; 11 | 12 | public: 13 | #if __cplusplus >= 201103L 14 | ~return_code() noexcept(false) 15 | #else 16 | ~return_code() 17 | #endif 18 | { 19 | if ( m_rc < 0 ) 20 | throw m_rc; 21 | } 22 | 23 | return_code( long rc ) 24 | : m_rc( rc ) {} 25 | 26 | operator long () 27 | { 28 | long rc = m_rc; 29 | m_rc = -1; 30 | return rc; 31 | } 32 | }; 33 | 34 | #endif // HAGAN_EXPLODING_RETURN_CODE_H_INCLUDED 35 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/template_arity_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: template_arity_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | namespace boost { namespace mpl { namespace aux { 18 | 19 | template< typename F > struct template_arity; 20 | 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/gcc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 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: gcc.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #if defined(__GNUC__) && !defined(__EDG_VERSION__) 18 | # define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) 19 | #else 20 | # define BOOST_MPL_CFG_GCC 0 21 | #endif 22 | 23 | #endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/inc.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_INC_HPP 13 | # define BOOST_PREPROCESSOR_INC_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/config/abi_prefix.hpp: -------------------------------------------------------------------------------- 1 | // abi_prefix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 10 | # define BOOST_CONFIG_ABI_PREFIX_HPP 11 | #else 12 | # error double inclusion of header boost/config/abi_prefix.hpp is an error 13 | #endif 14 | 15 | #include 16 | 17 | // this must occur after all other includes and before any code appears: 18 | #ifdef BOOST_HAS_ABI_HEADERS 19 | # include BOOST_ABI_PREFIX 20 | #endif 21 | 22 | #if defined( __BORLANDC__ ) 23 | #pragma nopushoptwarn 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /deps/boost/mpl/void_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_VOID_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: void_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | struct void_; 22 | 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(void_) 25 | 26 | #endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EMPTY_HPP 13 | # define BOOST_PREPROCESSOR_EMPTY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/mpl/size_t.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED 3 | #define BOOST_MPL_SIZE_T_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: size_t.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE std::size_t 20 | #define AUX_WRAPPER_NAME size_t 21 | #define AUX_WRAPPER_PARAMS(N) std::size_t N 22 | 23 | #include 24 | 25 | #endif // BOOST_MPL_SIZE_T_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/iterate.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATE_HPP 13 | # define BOOST_PREPROCESSOR_ITERATE_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/repeat.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_IDENTITY_HPP 13 | # define BOOST_PREPROCESSOR_IDENTITY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP 13 | # define BOOST_PREPROCESSOR_COMMA_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/enum_params.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /deps/boost/config/platform/solaris.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // sun specific config options: 10 | 11 | #define BOOST_PLATFORM "Sun Solaris" 12 | 13 | #define BOOST_HAS_GETTIMEOFDAY 14 | 15 | // boilerplate code: 16 | #define BOOST_HAS_UNISTD_H 17 | #include 18 | 19 | // 20 | // pthreads don't actually work with gcc unless _PTHREADS is defined: 21 | // 22 | #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) 23 | # undef BOOST_HAS_PTHREADS 24 | #endif 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/yes_no_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 12 | #define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | typedef char yes_type; 18 | struct no_type 19 | { 20 | char padding[8]; 21 | }; 22 | 23 | } // namespace type_traits 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /deps/boost/type_traits/ice.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_ICE_HPP_INCLUDED 12 | #define BOOST_TT_ICE_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #endif // BOOST_TT_ICE_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /deps/boost/config/platform/vms.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Artyom Beilis 2010. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 7 | #define BOOST_CONFIG_PLATFORM_VMS_HPP 8 | 9 | #define BOOST_PLATFORM "OpenVMS" 10 | 11 | #undef BOOST_HAS_STDINT_H 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_DIRENT_H 16 | #define BOOST_HAS_PTHREADS 17 | #define BOOST_HAS_NANOSLEEP 18 | #define BOOST_HAS_CLOCK_GETTIME 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | #define BOOST_HAS_LOG1P 21 | #define BOOST_HAS_EXPM1 22 | #define BOOST_HAS_THREADS 23 | #undef BOOST_HAS_SCHED_YIELD 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/lwm_nop.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/lwm_nop.hpp 12 | // 13 | // Copyright (c) 2002 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | 20 | namespace boost 21 | { 22 | 23 | namespace detail 24 | { 25 | 26 | class lightweight_mutex 27 | { 28 | public: 29 | 30 | typedef lightweight_mutex scoped_lock; 31 | }; 32 | 33 | } // namespace detail 34 | 35 | } // namespace boost 36 | 37 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED 38 | -------------------------------------------------------------------------------- /deps/boost/mpl/int_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INT_FWD_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: int_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 21 | 22 | template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; 23 | 24 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 25 | BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) 26 | 27 | #endif // BOOST_MPL_INT_FWD_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /deps/boost/config/abi_suffix.hpp: -------------------------------------------------------------------------------- 1 | // abi_sufffix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | // This header should be #included AFTER code that was preceded by a #include 10 | // . 11 | 12 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 13 | # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp 14 | #else 15 | # undef BOOST_CONFIG_ABI_PREFIX_HPP 16 | #endif 17 | 18 | // the suffix header occurs after all of our code: 19 | #ifdef BOOST_HAS_ABI_HEADERS 20 | # include BOOST_ABI_SUFFIX 21 | #endif 22 | 23 | #if defined( __BORLANDC__ ) 24 | #pragma nopushoptwarn 25 | #endif 26 | 27 | 28 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/na_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: na_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | // n.a. == not available 22 | struct na 23 | { 24 | typedef na type; 25 | enum { value = 0 }; 26 | }; 27 | 28 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(na) 30 | 31 | #endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/iteration/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP 13 | # define BOOST_PREPROCESSOR_ITERATION_SELF_HPP 14 | # 15 | # /* BOOST_PP_INCLUDE_SELF */ 16 | # 17 | # define BOOST_PP_INCLUDE_SELF() 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/false_result.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2002. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | 9 | #ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED 10 | #define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | // Utility class which always "returns" false 18 | struct false_result 19 | { 20 | template struct result_ 21 | { 22 | BOOST_STATIC_CONSTANT(bool, value = false); 23 | }; 24 | }; 25 | 26 | }} // namespace boost::type_traits 27 | 28 | #endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/sgi_mipspro.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // SGI C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // Threading support: 16 | // Turn this on unconditionally here, it will get turned off again later 17 | // if no threading API is detected. 18 | // 19 | #define BOOST_HAS_THREADS 20 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 21 | 22 | #undef BOOST_NO_SWPRINTF 23 | #undef BOOST_DEDUCED_TYPENAME 24 | 25 | // 26 | // version check: 27 | // probably nothing to do here? 28 | 29 | 30 | -------------------------------------------------------------------------------- /deps/boost/config/platform/qnxnto.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jim Douglas 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // QNX specific config options: 9 | 10 | #define BOOST_PLATFORM "QNX" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #include 14 | 15 | // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h 16 | // or log1p and expm1: 17 | #undef BOOST_HAS_NL_TYPES_H 18 | #undef BOOST_HAS_LOG1P 19 | #undef BOOST_HAS_EXPM1 20 | 21 | #define BOOST_HAS_PTHREADS 22 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 23 | 24 | #define BOOST_HAS_GETTIMEOFDAY 25 | #define BOOST_HAS_CLOCK_GETTIME 26 | #define BOOST_HAS_NANOSLEEP 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/static_constant.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_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: static_constant.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #if !defined(BOOST_MPL_PREPROCESSING_MODE) 18 | // BOOST_STATIC_CONSTANT is defined here: 19 | # include 20 | #else 21 | // undef the macro for the preprocessing mode 22 | # undef BOOST_STATIC_CONSTANT 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /deps/boost/config/abi/msvc_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // 7 | // Boost binaries are built with the compiler's default ABI settings, 8 | // if the user changes their default alignment in the VS IDE then their 9 | // code will no longer be binary compatible with the bjam built binaries 10 | // unless this header is included to force Boost code into a consistent ABI. 11 | // 12 | // Note that inclusion of this header is only necessary for libraries with 13 | // separate source, header only libraries DO NOT need this as long as all 14 | // translation units are built with the same options. 15 | // 16 | #if defined(_M_X64) 17 | # pragma pack(push,16) 18 | #else 19 | # pragma pack(push,8) 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/lambda_arity_param.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: lambda_arity_param.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) 20 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) 21 | #else 22 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/ice_not.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock and Steve Cleary 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED 9 | #define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED 10 | 11 | #include 12 | 13 | namespace boost { 14 | namespace type_traits { 15 | 16 | template 17 | struct ice_not 18 | { 19 | BOOST_STATIC_CONSTANT(bool, value = true); 20 | }; 21 | 22 | template <> 23 | struct ice_not 24 | { 25 | BOOST_STATIC_CONSTANT(bool, value = false); 26 | }; 27 | 28 | } // namespace type_traits 29 | } // namespace boost 30 | 31 | #endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /deps/boost/config/platform/irix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // SGI Irix specific config options: 11 | 12 | #define BOOST_PLATFORM "SGI Irix" 13 | 14 | #define BOOST_NO_SWPRINTF 15 | // 16 | // these are not auto detected by POSIX feature tests: 17 | // 18 | #define BOOST_HAS_GETTIMEOFDAY 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | 21 | #ifdef __GNUC__ 22 | // GNU C on IRIX does not support threads (checked up to gcc 3.3) 23 | # define BOOST_DISABLE_THREADS 24 | #endif 25 | 26 | // boilerplate code: 27 | #define BOOST_HAS_UNISTD_H 28 | #include 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/iteration/detail/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # if !defined(BOOST_PP_INDIRECT_SELF) 13 | # error BOOST_PP_ERROR: no indirect file to include 14 | # endif 15 | # 16 | # define BOOST_PP_IS_SELFISH 1 17 | # 18 | # include BOOST_PP_INDIRECT_SELF 19 | # 20 | # undef BOOST_PP_IS_SELFISH 21 | # undef BOOST_PP_INDIRECT_SELF 22 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/greenhills.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Greenhills C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // versions check: 16 | // we don't support Greenhills prior to version 0: 17 | #if __ghs < 0 18 | # error "Compiler not supported or configured - please reconfigure" 19 | #endif 20 | // 21 | // last known and checked version is 0: 22 | #if (__ghs > 0) 23 | # if defined(BOOST_ASSERT_CONFIG) 24 | # error "Unknown compiler version - please run the configure tests and report the results" 25 | # endif 26 | #endif 27 | 28 | 29 | -------------------------------------------------------------------------------- /deps/boost/mpl/integral_c_tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 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: integral_c_tag.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); }; 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag) 25 | 26 | #endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /deps/boost/mpl/size_t_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_SIZE_T_FWD_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: size_t_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include // make sure 'size_t' is placed into 'std' 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | 23 | template< std::size_t N > struct size_t; 24 | 25 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 26 | BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t) 27 | 28 | #endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/nvcc.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Eric Jourdanneau, Joel Falcou 2010 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // NVIDIA CUDA C++ compiler setup 9 | 10 | #ifndef BOOST_COMPILER 11 | # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" 12 | #endif 13 | 14 | // NVIDIA Specific support 15 | // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device 16 | #define BOOST_GPU_ENABLED __host__ __device__ 17 | 18 | // Boost support macro for NVCC 19 | // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks 20 | #ifdef __GNUC__ 21 | 22 | #include 23 | 24 | #elif defined(_MSC_VER) 25 | 26 | #include 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/config/no_tr1/cmath.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2008. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/cmath is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_CMATH 14 | # define BOOST_CONFIG_CMATH 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_CMATH_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_CMATH_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_CMATH_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/config/platform/vxworks.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Dustin Spicuzza 2009. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // vxWorks specific config options: 9 | 10 | #define BOOST_PLATFORM "vxWorks" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | #if defined(__GNUC__) && defined(__STRICT_ANSI__) 16 | #define BOOST_NO_INT64_T 17 | #endif 18 | 19 | #define BOOST_HAS_UNISTD_H 20 | 21 | // these allow posix_features to work, since vxWorks doesn't 22 | // define them itself 23 | #define _POSIX_TIMERS 1 24 | #define _POSIX_THREADS 1 25 | 26 | // vxworks doesn't work with asio serial ports 27 | #define BOOST_ASIO_DISABLE_SERIAL_PORT 28 | 29 | // boilerplate code: 30 | #include 31 | 32 | -------------------------------------------------------------------------------- /deps/boost/config/no_tr1/memory.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/memory is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_MEMORY 14 | # define BOOST_CONFIG_MEMORY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_MEMORY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_MEMORY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_MEMORY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/config/no_tr1/complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/complex is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_COMPLEX 14 | # define BOOST_CONFIG_COMPLEX 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_COMPLEX_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_COMPLEX_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/config/no_tr1/utility.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/utility is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_UTILITY 14 | # define BOOST_CONFIG_UTILITY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_UTILITY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_UTILITY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_UTILITY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/static_cast.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: static_cast.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ 20 | || BOOST_WORKAROUND(__GNUC__, < 3) \ 21 | || BOOST_WORKAROUND(__MWERKS__, <= 0x3001) 22 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr) 23 | #else 24 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast(expr) 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /deps/boost/config/no_tr1/functional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/functional is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_FUNCTIONAL 14 | # define BOOST_CONFIG_FUNCTIONAL 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/boost/mpl/bool_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_BOOL_FWD_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: bool_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | template< bool C_ > struct bool_; 22 | 23 | // shorcuts 24 | typedef bool_ true_; 25 | typedef bool_ false_; 26 | 27 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 28 | 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) 30 | BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) 31 | BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) 32 | 33 | #endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /examples/test_expected_minimal.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #include "expected_minimal.hpp" 8 | 9 | #include 10 | #include 11 | 12 | int main() 13 | { 14 | try 15 | { 16 | expected e0; 17 | expected ei{ 7 }; 18 | expected ee{ nullexp, 19 | std::make_exception_ptr(std::runtime_error("disengaged")) }; 20 | 21 | std::cout << "ei.value(): "; std::cout << ei.value() << std::endl; 22 | std::cout << "ee.value(): "; std::cout << ee.value() << std::endl; 23 | } 24 | catch ( std::exception const & e ) 25 | { 26 | std::cout << "Error: " << e.what() << std::endl; 27 | } 28 | } 29 | 30 | // g++ -Wall -Wextra -std=c++11 -o test_expected_minimal.exe test_expected_minimal.cpp && test_expected_minimal 31 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_rvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) John Maddock 2010. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 10 | #define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 11 | 12 | #include 13 | 14 | // should be the last #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false) 20 | #ifndef BOOST_NO_RVALUE_REFERENCES 21 | BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true) 22 | #endif 23 | 24 | } // namespace boost 25 | 26 | #include 27 | 28 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 29 | 30 | -------------------------------------------------------------------------------- /examples/test_expected_use_policy.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #include "expected_use_policy.hpp" 8 | 9 | #include 10 | 11 | int main() 12 | { 13 | try 14 | { 15 | expected ei{ 77 }; 16 | 17 | std::cout << "not using ei.value(): \n"; 18 | } 19 | catch ( std::exception const & e ) 20 | { 21 | std::cout << "Error: " << e.what() << std::endl; 22 | } 23 | 24 | try 25 | { 26 | expected er{ 777 }; 27 | 28 | std::cout << "not using er.value(): "; 29 | } 30 | catch ( std::exception const & e ) 31 | { 32 | std::cout << "Error: " << e.what() << std::endl; 33 | } 34 | } 35 | 36 | // g++ -Wall -Wextra -std=c++11 -o test_expected_use_policy.exe test_expected_use_policy.cpp && test_expected_use_policy 37 | -------------------------------------------------------------------------------- /deps/boost/config/platform/aix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // IBM/Aix specific config options: 9 | 10 | #define BOOST_PLATFORM "IBM Aix" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_NANOSLEEP 15 | #define BOOST_HAS_CLOCK_GETTIME 16 | 17 | // This needs support in "boost/cstdint.hpp" exactly like FreeBSD. 18 | // This platform has header named which includes all 19 | // the things needed. 20 | #define BOOST_HAS_STDINT_H 21 | 22 | // Threading API's: 23 | #define BOOST_HAS_PTHREADS 24 | #define BOOST_HAS_PTHREAD_DELAY_NP 25 | #define BOOST_HAS_SCHED_YIELD 26 | //#define BOOST_HAS_PTHREAD_YIELD 27 | 28 | // boilerplate code: 29 | #include 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/control/if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP 15 | # define BOOST_PREPROCESSOR_CONTROL_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_IF */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 25 | # else 26 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f) 27 | # define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/ctps.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_CTPS_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: ctps.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && BOOST_WORKAROUND(__BORLANDC__, < 0x582) 23 | 24 | # define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC 25 | 26 | #endif 27 | 28 | // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/logical/and.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_AND_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_AND */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 25 | # else 26 | # define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q) 27 | # define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/arrays.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-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: arrays.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 23 | || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ 24 | ) 25 | 26 | # define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES 27 | 28 | #endif 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/overload_resolution.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: overload_resolution.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ 22 | || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ 23 | ) 24 | 25 | # define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION 26 | 27 | #endif 28 | 29 | #endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/template_arity_spec.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ 17 | && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) 18 | # define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \ 19 | namespace mpl { namespace aux { \ 20 | template< BOOST_MPL_PP_PARAMS(i, typename T) > \ 21 | struct template_arity< \ 22 | name< BOOST_MPL_PP_PARAMS(i, T) > \ 23 | > \ 24 | : int_ \ 25 | { \ 26 | }; \ 27 | }} \ 28 | /**/ 29 | #else 30 | # define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ 31 | #endif 32 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/nttp_decl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: nttp_decl.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if defined(BOOST_MPL_CFG_NTTP_BUG) 20 | 21 | typedef bool _mpl_nttp_bool; 22 | typedef int _mpl_nttp_int; 23 | typedef unsigned _mpl_nttp_unsigned; 24 | typedef long _mpl_nttp_long; 25 | 26 | # include 27 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ 28 | 29 | #else 30 | 31 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ 32 | 33 | #endif 34 | 35 | #endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/cat.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CAT_HPP 15 | # define BOOST_PREPROCESSOR_CAT_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_CAT */ 20 | # 21 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 22 | # define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b) 23 | # else 24 | # define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b)) 25 | # define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par 26 | # endif 27 | # 28 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 29 | # define BOOST_PP_CAT_I(a, b) a ## b 30 | # else 31 | # define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b) 32 | # define BOOST_PP_CAT_II(p, res) res 33 | # endif 34 | # 35 | # endif 36 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_float.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 10 | #define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 11 | 12 | // should be the last #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | //* is a type T a floating-point type described in the standard (3.9.1p8) 18 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false) 19 | BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true) 20 | BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true) 21 | BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true) 22 | 23 | } // namespace boost 24 | 25 | #include 26 | 27 | #endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /deps/boost/config/abi/borland_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // for C++ Builder the following options effect the ABI: 7 | // 8 | // -b (on or off - effect emum sizes) 9 | // -Vx (on or off - empty members) 10 | // -Ve (on or off - empty base classes) 11 | // -aX (alignment - 5 options). 12 | // -pX (Calling convention - 4 options) 13 | // -VmX (member pointer size and layout - 5 options) 14 | // -VC (on or off, changes name mangling) 15 | // -Vl (on or off, changes struct layout). 16 | 17 | // In addition the following warnings are sufficiently annoying (and 18 | // unfixable) to have them turned off by default: 19 | // 20 | // 8027 - functions containing [for|while] loops are not expanded inline 21 | // 8026 - functions taking class by value arguments are not expanded inline 22 | 23 | #pragma nopushoptwarn 24 | # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/bool_trait_undef.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 12 | // $Revision: 1944 $ 13 | 14 | #undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL 15 | #undef BOOST_TT_AUX_BOOL_C_BASE 16 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 17 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 18 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF3 19 | #undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 20 | #undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 21 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 22 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 23 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 24 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 25 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 26 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 27 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 28 | #undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 29 | -------------------------------------------------------------------------------- /deps/boost/config/stdlib/libcpp.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Christopher Jefferson 2011. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // config for libc++ 9 | // Might need more in here later. 10 | 11 | #if !defined(_LIBCPP_VERSION) 12 | # include 13 | # if !defined(_LIBCPP_VERSION) 14 | # error "This is not libc++!" 15 | # endif 16 | #endif 17 | 18 | #define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) 19 | 20 | #define BOOST_HAS_THREADS 21 | 22 | #ifdef _LIBCPP_HAS_NO_VARIADICS 23 | # define BOOST_NO_CXX11_HDR_TUPLE 24 | #endif 25 | 26 | // 27 | // These appear to be unusable/incomplete so far: 28 | // 29 | # define BOOST_NO_CXX11_HDR_CHRONO 30 | # define BOOST_NO_CXX11_HDR_FUTURE 31 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 32 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 33 | 34 | // libc++ uses a non-standard messages_base 35 | #define BOOST_NO_STD_MESSAGES 36 | 37 | // --- end --- 38 | -------------------------------------------------------------------------------- /deps/boost/mpl/integral_c_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2006 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: integral_c_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 21 | 22 | #if BOOST_WORKAROUND(__HP_aCC, <= 53800) 23 | // the type of non-type template arguments may not depend on template arguments 24 | template< typename T, long N > struct integral_c; 25 | #else 26 | template< typename T, T N > struct integral_c; 27 | #endif 28 | 29 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 30 | BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c) 31 | 32 | #endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/ice_eq.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock and Steve Cleary 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED 9 | #define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED 10 | 11 | #include 12 | 13 | namespace boost { 14 | namespace type_traits { 15 | 16 | template 17 | struct ice_eq 18 | { 19 | BOOST_STATIC_CONSTANT(bool, value = (b1 == b2)); 20 | }; 21 | 22 | template 23 | struct ice_ne 24 | { 25 | BOOST_STATIC_CONSTANT(bool, value = (b1 != b2)); 26 | }; 27 | 28 | #ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION 29 | template bool const ice_eq::value; 30 | template bool const ice_ne::value; 31 | #endif 32 | 33 | } // namespace type_traits 34 | } // namespace boost 35 | 36 | #endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED 37 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/lambda.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: lambda.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | // agurt, 15/jan/02: full-fledged implementation requires both 21 | // template template parameters _and_ partial specialization 22 | 23 | #if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ 24 | && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ 25 | || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ 26 | ) 27 | 28 | # define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT 29 | 30 | #endif 31 | 32 | #endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/ice_and.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock and Steve Cleary 2000. 2 | // 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED 10 | #define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | template 18 | struct ice_and; 19 | 20 | template 21 | struct ice_and 22 | { 23 | BOOST_STATIC_CONSTANT(bool, value = false); 24 | }; 25 | 26 | template <> 27 | struct ice_and 28 | { 29 | BOOST_STATIC_CONSTANT(bool, value = true); 30 | }; 31 | 32 | } // namespace type_traits 33 | } // namespace boost 34 | 35 | #endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/ice_or.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock and Steve Cleary 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED 9 | #define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED 10 | 11 | #include 12 | 13 | namespace boost { 14 | namespace type_traits { 15 | 16 | template 17 | struct ice_or; 18 | 19 | template 20 | struct ice_or 21 | { 22 | BOOST_STATIC_CONSTANT(bool, value = true); 23 | }; 24 | 25 | template <> 26 | struct ice_or 27 | { 28 | BOOST_STATIC_CONSTANT(bool, value = false); 29 | }; 30 | 31 | } // namespace type_traits 32 | } // namespace boost 33 | 34 | #endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/punctuation/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # /* BOOST_PP_COMMA_IF */ 23 | # 24 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 25 | # define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() 26 | # else 27 | # define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond) 28 | # define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() 29 | # endif 30 | # 31 | # endif 32 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/kai.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright David Abrahams 2002. 3 | // (C) Copyright Aleksey Gurtovoy 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // Kai C++ compiler setup: 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | # if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) 15 | // at least on Sun, the contents of is not in namespace std 16 | # define BOOST_NO_STDC_NAMESPACE 17 | # endif 18 | 19 | // see also common_edg.hpp which needs a special check for __KCC 20 | # if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) 21 | # define BOOST_NO_EXCEPTIONS 22 | # endif 23 | 24 | // 25 | // last known and checked version is 4001: 26 | #if (__KCC_VERSION > 4001) 27 | # if defined(BOOST_ASSERT_CONFIG) 28 | # error "Unknown compiler version - please run the configure tests and report the results" 29 | # endif 30 | #endif 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /deps/boost/mpl/bool.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BOOL_HPP_INCLUDED 3 | #define BOOST_MPL_BOOL_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: bool.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | 23 | template< bool C_ > struct bool_ 24 | { 25 | BOOST_STATIC_CONSTANT(bool, value = C_); 26 | typedef integral_c_tag tag; 27 | typedef bool_ type; 28 | typedef bool value_type; 29 | operator bool() const { return this->value; } 30 | }; 31 | 32 | #if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) 33 | template< bool C_ > 34 | bool const bool_::value; 35 | #endif 36 | 37 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 38 | 39 | #endif // BOOST_MPL_BOOL_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/iteration/local.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP 13 | # define BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP 14 | # 15 | # include 16 | # include 17 | # include 18 | # 19 | # /* BOOST_PP_LOCAL_ITERATE */ 20 | # 21 | # define BOOST_PP_LOCAL_ITERATE() 22 | # 23 | # define BOOST_PP_LOCAL_C(n) (BOOST_PP_LOCAL_S) <= n && (BOOST_PP_LOCAL_F) >= n 24 | # define BOOST_PP_LOCAL_R(n) (BOOST_PP_LOCAL_F) <= n && (BOOST_PP_LOCAL_S) >= n 25 | # 26 | # endif 27 | -------------------------------------------------------------------------------- /deps/boost/version.hpp: -------------------------------------------------------------------------------- 1 | // Boost version.hpp configuration header file ------------------------------// 2 | 3 | // (C) Copyright John maddock 1999. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org/libs/config for documentation 8 | 9 | #ifndef BOOST_VERSION_HPP 10 | #define BOOST_VERSION_HPP 11 | 12 | // 13 | // Caution, this is the only boost header that is guarenteed 14 | // to change with every boost release, including this header 15 | // will cause a recompile every time a new boost version is 16 | // released. 17 | // 18 | // BOOST_VERSION % 100 is the patch level 19 | // BOOST_VERSION / 100 % 1000 is the minor version 20 | // BOOST_VERSION / 100000 is the major version 21 | 22 | #define BOOST_VERSION 105100 23 | 24 | // 25 | // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION 26 | // but as a *string* in the form "x_y[_z]" where x is the major version 27 | // number, y is the minor version number, and z is the patch level if not 0. 28 | // This is used by to select which library version to link to. 29 | 30 | #define BOOST_LIB_VERSION "1_51" 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/facilities/overload.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2011. * 4 | # * (C) Copyright Edward Diener 2011. * 5 | # * Distributed under the Boost Software License, Version 1.0. (See * 6 | # * accompanying file LICENSE_1_0.txt or copy at * 7 | # * http://www.boost.org/LICENSE_1_0.txt) * 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP 14 | # define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP 15 | # 16 | # include 17 | # include 18 | # 19 | # /* BOOST_PP_OVERLOAD */ 20 | # 21 | # if BOOST_PP_VARIADICS 22 | # define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)) 23 | # endif 24 | # 25 | # endif 26 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/array/data.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ARRAY_DATA_HPP 13 | # define BOOST_PREPROCESSOR_ARRAY_DATA_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_ARRAY_DATA */ 19 | # 20 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 21 | # define BOOST_PP_ARRAY_DATA(array) BOOST_PP_TUPLE_ELEM(2, 1, array) 22 | # else 23 | # define BOOST_PP_ARRAY_DATA(array) BOOST_PP_ARRAY_DATA_I(array) 24 | # define BOOST_PP_ARRAY_DATA_I(array) BOOST_PP_ARRAY_DATA_II array 25 | # define BOOST_PP_ARRAY_DATA_II(size, data) data 26 | # endif 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/array/size.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ARRAY_SIZE_HPP 13 | # define BOOST_PREPROCESSOR_ARRAY_SIZE_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_ARRAY_SIZE */ 19 | # 20 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 21 | # define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_TUPLE_ELEM(2, 0, array) 22 | # else 23 | # define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_ARRAY_SIZE_I(array) 24 | # define BOOST_PP_ARRAY_SIZE_I(array) BOOST_PP_ARRAY_SIZE_II array 25 | # define BOOST_PP_ARRAY_SIZE_II(size, data) size 26 | # endif 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/nttp.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: nttp.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | // MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp" 21 | // for a workaround): 22 | // 23 | // namespace std { 24 | // template< typename Char > struct string; 25 | // } 26 | // 27 | // void foo(std::string); 28 | // 29 | // namespace boost { namespace mpl { 30 | // template< int > struct arg; 31 | // }} 32 | 33 | #if !defined(BOOST_MPL_CFG_NTTP_BUG) \ 34 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 35 | && BOOST_WORKAROUND(BOOST_MSVC, < 1300) 36 | 37 | # define BOOST_MPL_CFG_NTTP_BUG 38 | 39 | #endif 40 | 41 | #endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED 42 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/integral.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 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: integral.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) 23 | 24 | # define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS 25 | 26 | #endif 27 | 28 | #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \ 29 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 30 | && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ 31 | || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ 32 | ) 33 | 34 | # define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC 35 | 36 | #endif 37 | 38 | #endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_ARITY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: arity.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) 20 | 21 | # include 22 | # include 23 | 24 | namespace boost { namespace mpl { namespace aux { 25 | 26 | // agurt, 15/mar/02: it's possible to implement the template so that it will 27 | // "just work" and do not require any specialization, but not on the compilers 28 | // that require the arity workaround in the first place 29 | template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > 30 | struct arity 31 | { 32 | BOOST_STATIC_CONSTANT(int, value = N); 33 | }; 34 | 35 | }}} 36 | 37 | #endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES 38 | 39 | #endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_void.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_VOID_HPP_INCLUDED 10 | #define BOOST_TT_IS_VOID_HPP_INCLUDED 11 | 12 | #include 13 | 14 | // should be the last #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | //* is a type T void - is_void 20 | #if defined( __CODEGEARC__ ) 21 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,__is_void(T)) 22 | #else 23 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false) 24 | BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true) 25 | 26 | #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS 27 | BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true) 28 | BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true) 29 | BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true) 30 | #endif 31 | 32 | #endif // non-CodeGear implementation 33 | 34 | } // namespace boost 35 | 36 | #include 37 | 38 | #endif // BOOST_TT_IS_VOID_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/control/expr_iif.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP 13 | # define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_EXPR_IIF */ 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 20 | # define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr) 21 | # else 22 | # define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr)) 23 | # define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par 24 | # endif 25 | # 26 | # define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr) 27 | # 28 | # define BOOST_PP_EXPR_IIF_0(expr) 29 | # define BOOST_PP_EXPR_IIF_1(expr) expr 30 | # 31 | # endif 32 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/detail/is_binary.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP 13 | # define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_IS_BINARY */ 19 | # 20 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 21 | # define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) 22 | # else 23 | # define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x) 24 | # define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) 25 | # endif 26 | # 27 | # define BOOST_PP_IS_BINARY_CHECK(a, b) 1 28 | # define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/preprocessor.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_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: preprocessor.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \ 20 | && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \ 21 | || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \ 22 | || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ 23 | ) 24 | 25 | # define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION 26 | 27 | #endif 28 | 29 | #if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) 30 | # define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES 31 | #endif 32 | 33 | #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \ 34 | && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 35 | # define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING 36 | #endif 37 | 38 | 39 | #endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /alexandrescu/test_expected.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #include "expected.hpp" 8 | #include 9 | #include 10 | 11 | Expected foo() 12 | { 13 | return 33; 14 | } 15 | 16 | Expected bar() 17 | { 18 | return Expected::fromException( std::invalid_argument( "not a number" ) ); 19 | } 20 | 21 | int foobar() 22 | { 23 | throw std::runtime_error( "exception in fromCode()" ); 24 | } 25 | 26 | int main() 27 | { 28 | try 29 | { 30 | std::cout << "foo().get(): " << foo().get() << std::endl; 31 | std::cout << "bar().get(): " << bar().get() << std::endl; 32 | 33 | Expected::fromCode( foobar ).get(); 34 | } 35 | catch ( std::invalid_argument const & e ) 36 | { 37 | std::cout << "Invalid argument: " << e.what() << std::endl; 38 | } 39 | catch ( std::exception const & e ) 40 | { 41 | std::cout << "Error: " << e.what() << std::endl; 42 | } 43 | catch (...) 44 | { 45 | assert( false ); 46 | } 47 | } 48 | 49 | // cl -nologo -W3 -EHsc -GR test_expected.cpp && test_expected.exe 50 | // g++ -Wall -Wextra -std=c++11 -o test_expected.exe test_expected.cpp && test_expected.exe 51 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/array/elem.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ARRAY_ELEM_HPP 13 | # define BOOST_PREPROCESSOR_ARRAY_ELEM_HPP 14 | # 15 | # include 16 | # include 17 | # include 18 | # include 19 | # 20 | # /* BOOST_PP_ARRAY_ELEM */ 21 | # 22 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 23 | # define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array)) 24 | # else 25 | # define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_ARRAY_ELEM_I(i, array) 26 | # define BOOST_PP_ARRAY_ELEM_I(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array)) 27 | # endif 28 | # 29 | # endif 30 | -------------------------------------------------------------------------------- /nonco/test_expected.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #include "expected.hpp" 8 | 9 | #include 10 | #include 11 | 12 | expected foo() 13 | { 14 | return 33; 15 | } 16 | 17 | expected bar() 18 | { 19 | return expected::from_exception( std::invalid_argument( "not a number" ) ); 20 | } 21 | 22 | int foobar() 23 | { 24 | throw std::runtime_error( "exception in fromCode()" ); 25 | } 26 | 27 | int main() 28 | { 29 | try 30 | { 31 | std::cout << "*foo(): " << *foo() << std::endl; 32 | std::cout << "*bar(): " << *bar() << std::endl; 33 | 34 | *expected::from_code( foobar ); 35 | } 36 | catch ( std::invalid_argument const & e ) 37 | { 38 | std::cout << "Invalid argument: " << e.what() << std::endl; 39 | } 40 | catch ( std::exception const & e ) 41 | { 42 | std::cout << "Error: " << e.what() << std::endl; 43 | } 44 | catch (...) 45 | { 46 | assert( false ); 47 | } 48 | 49 | return 0; // VC6 50 | } 51 | 52 | // cl -nologo -Wall -EHsc test_expected.cpp && test_expected.exe 53 | // g++ -Wall -Wextra -std=c++11 -o test_expected.exe test_expected.cpp && test_expected.exe 54 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/ttp.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_TTP_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: ttp.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ 22 | && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \ 23 | || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \ 24 | ) 25 | 26 | # define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS 27 | 28 | #endif 29 | 30 | 31 | #if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ 32 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 33 | && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ 34 | || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 35 | ) 36 | 37 | # define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING 38 | 39 | #endif 40 | 41 | #endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED 42 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/logical/compl.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP 13 | # define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_COMPL */ 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 20 | # define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x) 21 | # else 22 | # define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x)) 23 | # define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par 24 | # endif 25 | # 26 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 27 | # define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x 28 | # else 29 | # define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x) 30 | # define BOOST_PP_COMPL_ID(id) id 31 | # endif 32 | # 33 | # define BOOST_PP_COMPL_0 1 34 | # define BOOST_PP_COMPL_1 0 35 | # 36 | # endif 37 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/control/iif.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP 13 | # define BOOST_PREPROCESSOR_CONTROL_IIF_HPP 14 | # 15 | # include 16 | # 17 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 18 | # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) 19 | # else 20 | # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f)) 21 | # define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par 22 | # endif 23 | # 24 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 25 | # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f) 26 | # else 27 | # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f)) 28 | # define BOOST_PP_IIF_II(id) id 29 | # endif 30 | # 31 | # define BOOST_PP_IIF_0(t, f) f 32 | # define BOOST_PP_IIF_1(t, f) t 33 | # 34 | # endif 35 | -------------------------------------------------------------------------------- /hagan/return_code_fg.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2000 Francis Glassborow 2 | // Exploding return codes. 3 | // https://groups.google.com/forum/#!msg/comp.lang.c++.moderated/BkZqPfoq3ys/H_PMR8Sat4oJ 4 | 5 | // Note: without a move constructor you risk throwing in the destructor while 6 | // an exception is already in flight, resulting in a call to std::terminate(). 7 | 8 | #ifndef GLASSBOROW_EXPLODING_RETURN_CODE_H_INCLUDED 9 | #define GLASSBOROW_EXPLODING_RETURN_CODE_H_INCLUDED 10 | 11 | #include 12 | #include 13 | 14 | struct trace 15 | { 16 | std::string text; 17 | trace(std::string text) 18 | : text(text) 19 | { 20 | std::cout << "> " << text << std::endl; 21 | } 22 | ~trace() 23 | { 24 | std::cout << "< " << text << std::endl; 25 | } 26 | }; 27 | 28 | class return_code 29 | { 30 | long rc_m; 31 | bool ignored; 32 | 33 | public: 34 | return_code(long rc) 35 | : rc_m(rc) 36 | , ignored(true) 37 | { 38 | trace t("rc(long)"); 39 | } 40 | 41 | #if __cplusplus >= 201103L 42 | ~return_code() noexcept(false) 43 | #else 44 | ~return_code() 45 | #endif 46 | { 47 | trace t("~rc()"); 48 | if (ignored) 49 | { 50 | throw rc_m; 51 | } 52 | } 53 | 54 | operator long () 55 | { 56 | trace t("op long()"); 57 | ignored = false; 58 | return rc_m; 59 | } 60 | }; 61 | 62 | #endif // GLASSBOROW_EXPLODING_RETURN_CODE_H_INCLUDED 63 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/atomic_count_sync.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED 3 | 4 | // 5 | // boost/detail/atomic_count_sync.hpp 6 | // 7 | // atomic_count for g++ 4.1+ 8 | // 9 | // http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html 10 | // 11 | // Copyright 2007 Peter Dimov 12 | // 13 | // Distributed under the Boost Software License, Version 1.0. (See 14 | // accompanying file LICENSE_1_0.txt or copy at 15 | // http://www.boost.org/LICENSE_1_0.txt) 16 | // 17 | 18 | #if defined( __ia64__ ) && defined( __INTEL_COMPILER ) 19 | # include 20 | #endif 21 | 22 | namespace boost 23 | { 24 | 25 | namespace detail 26 | { 27 | 28 | class atomic_count 29 | { 30 | public: 31 | 32 | explicit atomic_count( long v ) : value_( v ) {} 33 | 34 | long operator++() 35 | { 36 | return __sync_add_and_fetch( &value_, 1 ); 37 | } 38 | 39 | long operator--() 40 | { 41 | return __sync_add_and_fetch( &value_, -1 ); 42 | } 43 | 44 | operator long() const 45 | { 46 | return __sync_fetch_and_add( &value_, 0 ); 47 | } 48 | 49 | private: 50 | 51 | atomic_count(atomic_count const &); 52 | atomic_count & operator=(atomic_count const &); 53 | 54 | mutable long value_; 55 | }; 56 | 57 | } // namespace detail 58 | 59 | } // namespace boost 60 | 61 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED 62 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/slot/slot.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SLOT_SLOT_HPP 13 | # define BOOST_PREPROCESSOR_SLOT_SLOT_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_ASSIGN_SLOT */ 19 | # 20 | # define BOOST_PP_ASSIGN_SLOT(i) BOOST_PP_CAT(BOOST_PP_ASSIGN_SLOT_, i) 21 | # 22 | # define BOOST_PP_ASSIGN_SLOT_1 23 | # define BOOST_PP_ASSIGN_SLOT_2 24 | # define BOOST_PP_ASSIGN_SLOT_3 25 | # define BOOST_PP_ASSIGN_SLOT_4 26 | # define BOOST_PP_ASSIGN_SLOT_5 27 | # 28 | # /* BOOST_PP_SLOT */ 29 | # 30 | # define BOOST_PP_SLOT(i) BOOST_PP_CAT(BOOST_PP_SLOT_, i)() 31 | # 32 | # endif 33 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/atomic_count_win32.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/atomic_count_win32.hpp 12 | // 13 | // Copyright (c) 2001-2005 Peter Dimov 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | 20 | #include 21 | 22 | namespace boost 23 | { 24 | 25 | namespace detail 26 | { 27 | 28 | class atomic_count 29 | { 30 | public: 31 | 32 | explicit atomic_count( long v ): value_( v ) 33 | { 34 | } 35 | 36 | long operator++() 37 | { 38 | return BOOST_INTERLOCKED_INCREMENT( &value_ ); 39 | } 40 | 41 | long operator--() 42 | { 43 | return BOOST_INTERLOCKED_DECREMENT( &value_ ); 44 | } 45 | 46 | operator long() const 47 | { 48 | return static_cast( value_ ); 49 | } 50 | 51 | private: 52 | 53 | atomic_count( atomic_count const & ); 54 | atomic_count & operator=( atomic_count const & ); 55 | 56 | long value_; 57 | }; 58 | 59 | } // namespace detail 60 | 61 | } // namespace boost 62 | 63 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED 64 | -------------------------------------------------------------------------------- /deps/boost/memory_order.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED 2 | #define BOOST_MEMORY_ORDER_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // boost/memory_order.hpp 11 | // 12 | // Defines enum boost::memory_order per the C++0x working draft 13 | // 14 | // Copyright (c) 2008, 2009 Peter Dimov 15 | // 16 | // Distributed under the Boost Software License, Version 1.0. 17 | // See accompanying file LICENSE_1_0.txt or copy at 18 | // http://www.boost.org/LICENSE_1_0.txt) 19 | 20 | 21 | namespace boost 22 | { 23 | 24 | // 25 | // Enum values are chosen so that code that needs to insert 26 | // a trailing fence for acquire semantics can use a single 27 | // test such as: 28 | // 29 | // if( mo & memory_order_acquire ) { ...fence... } 30 | // 31 | // For leading fences one can use: 32 | // 33 | // if( mo & memory_order_release ) { ...fence... } 34 | // 35 | // Architectures such as Alpha that need a fence on consume 36 | // can use: 37 | // 38 | // if( mo & ( memory_order_acquire | memory_order_consume ) ) { ...fence... } 39 | // 40 | 41 | enum memory_order 42 | { 43 | memory_order_relaxed = 0, 44 | memory_order_acquire = 1, 45 | memory_order_release = 2, 46 | memory_order_acq_rel = 3, // acquire | release 47 | memory_order_seq_cst = 7, // acq_rel | 4 48 | memory_order_consume = 8 49 | }; 50 | 51 | } // namespace boost 52 | 53 | #endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED 54 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/preprocessor/filter_params.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_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: filter_params.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) 18 | #define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1 19 | #define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2 20 | #define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3 21 | #define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4 22 | #define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5 23 | #define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6 24 | #define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7 25 | #define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8 26 | #define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9 27 | 28 | #endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/list/fold_right.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP 15 | # define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # if 0 23 | # define BOOST_PP_LIST_FOLD_RIGHT(op, state, list) 24 | # endif 25 | # 26 | # define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) 27 | # 28 | # define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004) 29 | # 30 | # define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l) 31 | # define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT 32 | # define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D 33 | # 34 | # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 35 | # include 36 | # else 37 | # include 38 | # endif 39 | # 40 | # endif 41 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/preprocessor/tuple.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: tuple.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0 18 | #define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1 19 | #define BOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2 20 | #define BOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3 21 | #define BOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4 22 | #define BOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5 23 | #define BOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6 24 | #define BOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7 25 | #define BOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8 26 | #define BOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9 27 | #define BOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10 28 | 29 | #endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/sp_has_sync.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/smart_ptr/detail/sp_has_sync.hpp 12 | // 13 | // Copyright (c) 2008, 2009 Peter Dimov 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. 16 | // See accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | // Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics 20 | // are available. 21 | // 22 | 23 | #if defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( BOOST_SP_NO_SYNC ) 24 | 25 | #define BOOST_SP_HAS_SYNC 26 | 27 | #if defined( __arm__ ) || defined( __armel__ ) 28 | #undef BOOST_SP_HAS_SYNC 29 | #endif 30 | 31 | #if defined( __hppa ) || defined( __hppa__ ) 32 | #undef BOOST_SP_HAS_SYNC 33 | #endif 34 | 35 | #if defined( __m68k__ ) 36 | #undef BOOST_SP_HAS_SYNC 37 | #endif 38 | 39 | #if defined( __sh__ ) 40 | #undef BOOST_SP_HAS_SYNC 41 | #endif 42 | 43 | #if defined( __sparc__ ) 44 | #undef BOOST_SP_HAS_SYNC 45 | #endif 46 | 47 | #if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1100 ) 48 | #undef BOOST_SP_HAS_SYNC 49 | #endif 50 | 51 | #endif // __GNUC__ * 100 + __GNUC_MINOR__ >= 401 52 | 53 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED 54 | -------------------------------------------------------------------------------- /hagan/test_return_code.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // ReturnCode Copyright (C) 2000 by Ken Hagan 8 | 9 | #include "return_code.hpp" 10 | #include 11 | #include 12 | 13 | return_code foo() 14 | { 15 | return 77; 16 | } 17 | 18 | std::ostream & operator<<( std::ostream & os, return_code arg ) 19 | { 20 | return os << ( (long) arg ); 21 | } 22 | 23 | int main() 24 | { 25 | try 26 | { 27 | return_code f = foo(); 28 | return_code b = foo(); 29 | 30 | std::cout << "f: "; std::cout << f << std::endl; 31 | std::cout << "b: "; // std::cout << b << std::endl; 32 | 33 | // b throws: 34 | } 35 | catch ( std::exception const & e ) 36 | { 37 | std::cout << "Error (exception): " << e.what() << std::endl; 38 | } 39 | catch ( long const & e ) 40 | { 41 | std::cout << "Error (long): " << e << std::endl; 42 | } 43 | catch (...) 44 | { 45 | assert( false ); 46 | } 47 | 48 | return 0; // VC6 49 | } 50 | 51 | // cl -nologo -W3 -EHsc -Ideps test_return_code.cpp && test_return_code 52 | // g++ -Wall -Wextra -std=c++03 -Ideps -o test_return_code.exe test_return_code.cpp && test_return_code 53 | // g++ -Wall -Wextra -std=c++11 -o test_return_code.exe test_return_code.cpp && test_return_code 54 | -------------------------------------------------------------------------------- /examples/example_collection.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Implementation note: this version targets C++03. 4 | // 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | #include "expected_lite.hpp" 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | nonstd::expected foo() 16 | { 17 | return rand() % 100; 18 | } 19 | 20 | nonstd::expected bar() 21 | { 22 | return nonstd::expected( 23 | nonstd::nullexp, std::make_exception_ptr( std::runtime_error( "disengaged" ) ) ); 24 | } 25 | 26 | template 27 | std::ostream & operator<<( std::ostream & os, nonstd::expected const & arg ) 28 | { 29 | if ( arg ) 30 | return os << *arg << ", "; 31 | else 32 | return os << "#, "; 33 | } 34 | 35 | template 36 | void print( Collection const & c ) 37 | { 38 | for( auto elem : c ) 39 | { 40 | std::cout << elem; 41 | } 42 | std::cout << std::endl; 43 | } 44 | 45 | int main() 46 | { 47 | std::vector< nonstd::expected > coll 48 | { 49 | foo(), foo(), bar(), foo(), foo(), 50 | }; 51 | 52 | print( coll ); 53 | std::sort( coll.begin(), coll.end() ); 54 | print( coll ); 55 | } 56 | 57 | // g++ -Wall -Wextra -std=c++11 -I.. -o example_collection.exe example_collection.cpp && example_collection 58 | -------------------------------------------------------------------------------- /moene/required.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Implementation note: this version targets C++03 and C++11. 4 | // 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // Based on exploding return codes by Ken Hagan. 10 | // https://groups.google.com/forum/#!msg/comp.lang.c++.moderated/BkZqPfoq3ys/H_PMR8Sat4oJ 11 | 12 | #ifndef NONSTD_REQUIRED_H_INCLUDED 13 | #define NONSTD_REQUIRED_H_INCLUDED 14 | 15 | namespace nonstd { 16 | 17 | template 18 | class required 19 | { 20 | public: 21 | typedef T value_type; 22 | 23 | #if __cplusplus >= 201103L 24 | ~required() noexcept(false) 25 | #else 26 | ~required() 27 | #endif 28 | { 29 | if ( m_ignored ) 30 | throw m_value; 31 | } 32 | 33 | required( value_type const & v ) 34 | : m_value( v ) 35 | , m_ignored( true ) 36 | {} 37 | 38 | // move "ignored" state unconditionally, C++03, C++11 39 | required( required const & other ) 40 | : m_value( other.m_value ) 41 | , m_ignored( other.m_ignored ) 42 | { 43 | other.m_ignored = false; 44 | } 45 | 46 | operator value_type() const 47 | { 48 | m_ignored = false; 49 | return m_value; 50 | } 51 | 52 | private: 53 | value_type m_value; 54 | mutable bool m_ignored; 55 | }; 56 | 57 | } // namespace nonstd 58 | 59 | #endif // NONSTD_REQUIRED_H_INCLUDED 60 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/eti.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: eti.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | 20 | // flags for MSVC 6.5's so-called "early template instantiation bug" 21 | #if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ 22 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 23 | && BOOST_WORKAROUND(BOOST_MSVC, < 1300) 24 | 25 | # define BOOST_MPL_CFG_MSVC_60_ETI_BUG 26 | 27 | #endif 28 | 29 | #if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ 30 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 31 | && BOOST_WORKAROUND(BOOST_MSVC, == 1300) 32 | 33 | # define BOOST_MPL_CFG_MSVC_70_ETI_BUG 34 | 35 | #endif 36 | 37 | #if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \ 38 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 39 | && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ 40 | || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ 41 | ) 42 | 43 | # define BOOST_MPL_CFG_MSVC_ETI_BUG 44 | 45 | #endif 46 | 47 | #endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED 48 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/yes_no.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_YES_NO_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: yes_no.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | 23 | namespace boost { namespace mpl { namespace aux { 24 | 25 | typedef char (&no_tag)[1]; 26 | typedef char (&yes_tag)[2]; 27 | 28 | template< bool C_ > struct yes_no_tag 29 | { 30 | typedef no_tag type; 31 | }; 32 | 33 | template<> struct yes_no_tag 34 | { 35 | typedef yes_tag type; 36 | }; 37 | 38 | 39 | template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag 40 | { 41 | #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) 42 | typedef char (&type)[n]; 43 | #else 44 | char buf[n]; 45 | typedef weighted_tag type; 46 | #endif 47 | }; 48 | 49 | #if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) 50 | template<> struct weighted_tag<0> 51 | { 52 | typedef char (&type)[1]; 53 | }; 54 | #endif 55 | 56 | }}} 57 | 58 | #endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED 59 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/list/append.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP 15 | # define BOOST_PREPROCESSOR_LIST_APPEND_HPP 16 | # 17 | # include 18 | # include 19 | # 20 | # /* BOOST_PP_LIST_APPEND */ 21 | # 22 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 23 | # define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) 24 | # else 25 | # define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b) 26 | # define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) 27 | # endif 28 | # 29 | # define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s) 30 | # 31 | # /* BOOST_PP_LIST_APPEND_D */ 32 | # 33 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 34 | # define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) 35 | # else 36 | # define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b) 37 | # define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) 38 | # endif 39 | # 40 | # endif 41 | -------------------------------------------------------------------------------- /hagan/test_return_code_fg.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // ReturnCode Copyright (C) 2000 by Ken Hagan 8 | 9 | #include "return_code_fg.hpp" 10 | #include 11 | #include 12 | 13 | return_code foo() 14 | { 15 | return 77; 16 | } 17 | 18 | std::ostream & operator<<( std::ostream & os, return_code arg ) 19 | { 20 | return os << ( (long) arg ); 21 | } 22 | 23 | int main() 24 | { 25 | try 26 | { 27 | return_code f = foo(); 28 | return_code b = foo(); 29 | 30 | std::cout << "f: "; std::cout << f << std::endl; 31 | std::cout << "b: "; // std::cout << b << std::endl; 32 | 33 | // b throws: 34 | } 35 | catch ( std::exception const & e ) 36 | { 37 | std::cout << "Error (exception): " << e.what() << std::endl; 38 | } 39 | catch ( long const & e ) 40 | { 41 | std::cout << "Error (long): " << e << std::endl; 42 | } 43 | catch (...) 44 | { 45 | assert( false ); 46 | } 47 | 48 | return 0; // VC6 49 | } 50 | 51 | // cl -nologo -W3 -EHsc -Ideps test_return_code_fg.cpp && test_return_code_fg 52 | // g++ -Wall -Wextra -std=c++03 -Ideps -o test_return_code_fg.exe test_return_code_fg.cpp && test_return_code_fg 53 | // g++ -Wall -Wextra -std=c++11 -o test_return_code_fg.exe test_return_code_fg.cpp && test_return_code_fg 54 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000, 2010. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | #ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED 13 | #define BOOST_TT_IS_REFERENCE_HPP_INCLUDED 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | // should be the last #include 21 | #include 22 | 23 | namespace boost { 24 | 25 | namespace detail { 26 | 27 | template 28 | struct is_reference_impl 29 | { 30 | BOOST_STATIC_CONSTANT(bool, value = 31 | (::boost::type_traits::ice_or< 32 | ::boost::is_lvalue_reference::value, ::boost::is_rvalue_reference::value 33 | >::value)); 34 | }; 35 | 36 | } // namespace detail 37 | 38 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl::value) 39 | 40 | } // namespace boost 41 | 42 | #include 43 | 44 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 45 | 46 | -------------------------------------------------------------------------------- /deps/boost/mpl/lambda_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: lambda_fwd.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) 22 | 23 | # include 24 | # include 25 | # include 26 | 27 | namespace boost { namespace mpl { 28 | 29 | template< 30 | typename T = na 31 | , typename Tag = void_ 32 | BOOST_MPL_AUX_LAMBDA_ARITY_PARAM( 33 | typename Arity = int_< aux::template_arity::value > 34 | ) 35 | > 36 | struct lambda; 37 | 38 | }} 39 | 40 | #else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT 41 | 42 | # include 43 | 44 | namespace boost { namespace mpl { 45 | 46 | template< 47 | typename T = na 48 | , typename Tag = void_ 49 | , typename Protect = true_ 50 | > 51 | struct lambda; 52 | 53 | }} 54 | 55 | #endif 56 | 57 | #endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED 58 | -------------------------------------------------------------------------------- /moene/test_required.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // ReturnCode Copyright (C) 2000 by Ken Hagan 8 | 9 | #include "required.hpp" 10 | #include 11 | #include 12 | 13 | nonstd::required foo() 14 | { 15 | return 77; 16 | } 17 | 18 | template 19 | std::ostream & operator<<( std::ostream & os, nonstd::required arg ) 20 | { 21 | return os << ( (T) arg ); 22 | } 23 | 24 | int main() 25 | { 26 | using namespace nonstd; 27 | 28 | try 29 | { 30 | required f = foo(); 31 | required b = foo(); 32 | 33 | std::cout << "f: "; std::cout << f << std::endl; 34 | std::cout << "b: "; // std::cout << b << std::endl; 35 | 36 | // b throws: 37 | } 38 | catch ( std::exception const & e ) 39 | { 40 | std::cout << "Error (exception): " << e.what() << std::endl; 41 | } 42 | catch ( long const & e ) 43 | { 44 | std::cout << "Error (long): " << e << std::endl; 45 | } 46 | catch (...) 47 | { 48 | assert( false ); 49 | } 50 | 51 | return 0; // VC6 52 | } 53 | 54 | // cl -nologo -W3 -EHsc -Ideps test_required.cpp && test_required 55 | // g++ -Wall -Wextra -std=c++03 -Ideps -o test_required.exe test_required.cpp && test_required 56 | // g++ -Wall -Wextra -std=c++11 -o test_required.exe test_required.cpp && test_required 57 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/logical/bitand.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP 13 | # define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP 14 | # 15 | # include 16 | # 17 | # /* BOOST_PP_BITAND */ 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 20 | # define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y) 21 | # else 22 | # define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y)) 23 | # define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par 24 | # endif 25 | # 26 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 27 | # define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y 28 | # else 29 | # define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y) 30 | # define BOOST_PP_BITAND_ID(res) res 31 | # endif 32 | # 33 | # define BOOST_PP_BITAND_00 0 34 | # define BOOST_PP_BITAND_01 0 35 | # define BOOST_PP_BITAND_10 0 36 | # define BOOST_PP_BITAND_11 1 37 | # 38 | # endif 39 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/list/reverse.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP 15 | # define BOOST_PREPROCESSOR_LIST_REVERSE_HPP 16 | # 17 | # include 18 | # include 19 | # 20 | # /* BOOST_PP_LIST_REVERSE */ 21 | # 22 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 23 | # define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) 24 | # else 25 | # define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list) 26 | # define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) 27 | # endif 28 | # 29 | # define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s) 30 | # 31 | # /* BOOST_PP_LIST_REVERSE_D */ 32 | # 33 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 34 | # define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) 35 | # else 36 | # define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list) 37 | # define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) 38 | # endif 39 | # 40 | # endif 41 | -------------------------------------------------------------------------------- /deps/boost/type_traits/msvc/typeof.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Peder Holt 2 | // Use, modification and distribution is subject to the Boost Software 3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | #ifndef BOOST_TYPETRAITS_MSVC_TYPEOF_HPP 6 | #define BOOST_TYPETRAITS_MSVC_TYPEOF_HPP 7 | 8 | #include 9 | #include 10 | 11 | namespace boost { namespace detail { 12 | # if BOOST_WORKAROUND(BOOST_MSVC,==1300) 13 | template 14 | struct msvc_extract_type 15 | { 16 | template 17 | struct id2type_impl; 18 | 19 | typedef id2type_impl id2type; 20 | }; 21 | 22 | template 23 | struct msvc_register_type : public msvc_extract_type 24 | { 25 | template<> 26 | struct id2type_impl //VC7.0 specific bugfeature 27 | { 28 | typedef T type; 29 | }; 30 | }; 31 | # else 32 | template 33 | struct msvc_extract_type 34 | { 35 | struct id2type; 36 | }; 37 | 38 | template 39 | struct msvc_register_type : public msvc_extract_type 40 | { 41 | typedef msvc_extract_type base_type; 42 | struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature 43 | { 44 | typedef T type; 45 | }; 46 | }; 47 | # endif 48 | }} 49 | 50 | #endif //BOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP 51 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/lightweight_mutex.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/lightweight_mutex.hpp - lightweight mutex 12 | // 13 | // Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | // typedef boost::detail::lightweight_mutex; 20 | // 21 | // boost::detail::lightweight_mutex is a header-only implementation of 22 | // a subset of the Mutex concept requirements: 23 | // 24 | // http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex 25 | // 26 | // It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX. 27 | // 28 | 29 | #include 30 | 31 | #if !defined(BOOST_HAS_THREADS) 32 | # include 33 | #elif defined(BOOST_HAS_PTHREADS) 34 | # include 35 | #elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) 36 | # include 37 | #else 38 | // Use #define BOOST_DISABLE_THREADS to avoid the error 39 | # error Unrecognized threading platform 40 | #endif 41 | 42 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED 43 | -------------------------------------------------------------------------------- /exception_c++11.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #ifndef STD11_EXCEPTION_CPP11_H_INCLUDED 8 | #define STD11_EXCEPTION_CPP11_H_INCLUDED 9 | 10 | // VC2010+ 11 | #if defined( _MSC_VER ) && ( _MSC_VER >= 1600 ) 12 | # define STD11_EXCPT__HAS_STD_EXCEPTION_PTR 13 | # define STD11_EXCPT__DEFINE_STD_MAKE_EXCEPTION_PTR 14 | #endif 15 | 16 | #if __cplusplus < 201103L && ! defined( STD11_EXCPT__HAS_STD_EXCEPTION_PTR ) 17 | 18 | #include "exception_ptr_lite.hpp" 19 | 20 | namespace std { 21 | 22 | using std11::exception_ptr; 23 | using std11::make_exception_ptr; 24 | using std11::rethrow_exception; 25 | using std11::current_exception; 26 | 27 | template 28 | inline T & move( T & rhs ) 29 | { 30 | return rhs; 31 | } 32 | 33 | } // namespace std 34 | 35 | #endif // not C++11 36 | 37 | 38 | // Special cases: 39 | 40 | #ifdef STD11_EXCPT__DEFINE_STD_MAKE_EXCEPTION_PTR 41 | 42 | namespace std { 43 | 44 | template 45 | inline exception_ptr 46 | make_exception_ptr( E const & e ) 47 | { 48 | try 49 | { 50 | throw e; 51 | } 52 | catch (...) 53 | { 54 | return current_exception(); 55 | } 56 | } 57 | 58 | } // namespace std 59 | 60 | #endif // STD11_EXCPT__DEFINE_STD_MAKE_EXCEPTION_PTR 61 | 62 | #undef STD11_EXCPT__DEFINE_STD_MAKE_EXCEPTION_PTR 63 | #undef STD11_EXCPT__HAS_STD_EXCEPTION_PTR 64 | 65 | #endif // STD11_EXCEPTION_CPP11_H_INCLUDED 66 | -------------------------------------------------------------------------------- /examples/expected_minimal.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Use, modification, and distribution is subject to the Boost Software 4 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | #ifndef NONSTD_EXPECTED_MINIMAL_HPP_INCLUDED 8 | #define NONSTD_EXPECTED_MINIMAL_HPP_INCLUDED 9 | 10 | #include 11 | #include 12 | 13 | struct nullexp_t {} nullexp; 14 | 15 | template 16 | class expected 17 | { 18 | typedef std::exception_ptr E; 19 | 20 | public: 21 | expected() 22 | : has_value( false ) 23 | { 24 | new ( & contained_error ) E( std::exception_ptr() ); 25 | } 26 | 27 | expected( T const & v ) 28 | : has_value( true ) 29 | { 30 | new ( & contained_value ) T( v ); 31 | } 32 | 33 | expected( nullexp_t, E const & e ) 34 | : has_value( false ) 35 | { 36 | new ( & contained_error ) E( e ); 37 | } 38 | 39 | ~expected() 40 | { 41 | if ( has_value ) 42 | contained_value.~T(); 43 | else 44 | contained_error.~E(); 45 | } 46 | 47 | explicit operator bool() const 48 | { 49 | return has_value; 50 | } 51 | 52 | T const & value() const 53 | { 54 | if ( ! has_value ) 55 | std::rethrow_exception( contained_error ); 56 | 57 | return contained_value; 58 | } 59 | 60 | private: 61 | union 62 | { 63 | T contained_value; 64 | E contained_error; 65 | }; 66 | bool has_value; 67 | }; 68 | 69 | #endif // NONSTD_EXPECTED_MINIMAL_HPP_INCLUDED 70 | -------------------------------------------------------------------------------- /deps/boost/config/platform/cygwin.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // cygwin specific config options: 9 | 10 | #define BOOST_PLATFORM "Cygwin" 11 | #define BOOST_HAS_DIRENT_H 12 | #define BOOST_HAS_LOG1P 13 | #define BOOST_HAS_EXPM1 14 | 15 | // 16 | // Threading API: 17 | // See if we have POSIX threads, if we do use them, otherwise 18 | // revert to native Win threads. 19 | #define BOOST_HAS_UNISTD_H 20 | #include 21 | #if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) 22 | # define BOOST_HAS_PTHREADS 23 | # define BOOST_HAS_SCHED_YIELD 24 | # define BOOST_HAS_GETTIMEOFDAY 25 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 26 | # define BOOST_HAS_SIGACTION 27 | #else 28 | # if !defined(BOOST_HAS_WINTHREADS) 29 | # define BOOST_HAS_WINTHREADS 30 | # endif 31 | # define BOOST_HAS_FTIME 32 | #endif 33 | 34 | // 35 | // find out if we have a stdint.h, there should be a better way to do this: 36 | // 37 | #include 38 | #ifdef _STDINT_H 39 | #define BOOST_HAS_STDINT_H 40 | #endif 41 | 42 | /// Cygwin has no fenv.h 43 | #define BOOST_NO_FENV_H 44 | 45 | // boilerplate code: 46 | #include 47 | 48 | // 49 | // Cygwin lies about XSI conformance, there is no nl_types.h: 50 | // 51 | #ifdef BOOST_HAS_NL_TYPES_H 52 | # undef BOOST_HAS_NL_TYPES_H 53 | #endif 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /deps/boost/type_traits/integral_constant.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP 7 | #define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | namespace boost{ 14 | 15 | #if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__) 16 | template 17 | #else 18 | template 19 | #endif 20 | struct integral_constant : public mpl::integral_c 21 | { 22 | typedef integral_constant type; 23 | }; 24 | 25 | template<> struct integral_constant : public mpl::true_ 26 | { 27 | #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 28 | # pragma warning(push) 29 | # pragma warning(disable:4097) 30 | typedef mpl::true_ base_; 31 | using base_::value; 32 | # pragma warning(pop) 33 | #endif 34 | typedef integral_constant type; 35 | }; 36 | template<> struct integral_constant : public mpl::false_ 37 | { 38 | #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 39 | # pragma warning(push) 40 | # pragma warning(disable:4097) 41 | typedef mpl::false_ base_; 42 | using base_::value; 43 | # pragma warning(pop) 44 | #endif 45 | typedef integral_constant type; 46 | }; 47 | 48 | typedef integral_constant true_type; 49 | typedef integral_constant false_type; 50 | 51 | } 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/operator_bool.hpp: -------------------------------------------------------------------------------- 1 | // This header intentionally has no include guards. 2 | // 3 | // Copyright (c) 2001-2009 Peter Dimov 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt 8 | 9 | #if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) 10 | 11 | operator bool () const 12 | { 13 | return px != 0; 14 | } 15 | 16 | #elif defined( _MANAGED ) 17 | 18 | static void unspecified_bool( this_type*** ) 19 | { 20 | } 21 | 22 | typedef void (*unspecified_bool_type)( this_type*** ); 23 | 24 | operator unspecified_bool_type() const // never throws 25 | { 26 | return px == 0? 0: unspecified_bool; 27 | } 28 | 29 | #elif \ 30 | ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ 31 | ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ 32 | ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) 33 | 34 | typedef T * (this_type::*unspecified_bool_type)() const; 35 | 36 | operator unspecified_bool_type() const // never throws 37 | { 38 | return px == 0? 0: &this_type::get; 39 | } 40 | 41 | #else 42 | 43 | typedef T * this_type::*unspecified_bool_type; 44 | 45 | operator unspecified_bool_type() const // never throws 46 | { 47 | return px == 0? 0: &this_type::px; 48 | } 49 | 50 | #endif 51 | 52 | // operator! is redundant, but some compilers need it 53 | bool operator! () const // never throws 54 | { 55 | return px == 0; 56 | } 57 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/adl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: adl.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | // agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC, 23 | // but putting everything expect public, user-specializable metafunctions into 24 | // a separate global namespace has a nice side effect of reducing the length 25 | // of template instantiation symbols, so we apply the workaround on all 26 | // platforms that can handle it 27 | 28 | #if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \ 29 | && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ 30 | || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 31 | || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ 32 | || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ 33 | || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \ 34 | ) 35 | 36 | # define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE 37 | 38 | #endif 39 | 40 | #endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED 41 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/spinlock_pt.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // Copyright (c) 2008 Peter Dimov 12 | // 13 | // Distributed under the Boost Software License, Version 1.0. 14 | // See accompanying file LICENSE_1_0.txt or copy at 15 | // http://www.boost.org/LICENSE_1_0.txt) 16 | // 17 | 18 | #include 19 | 20 | namespace boost 21 | { 22 | 23 | namespace detail 24 | { 25 | 26 | class spinlock 27 | { 28 | public: 29 | 30 | pthread_mutex_t v_; 31 | 32 | public: 33 | 34 | bool try_lock() 35 | { 36 | return pthread_mutex_trylock( &v_ ) == 0; 37 | } 38 | 39 | void lock() 40 | { 41 | pthread_mutex_lock( &v_ ); 42 | } 43 | 44 | void unlock() 45 | { 46 | pthread_mutex_unlock( &v_ ); 47 | } 48 | 49 | public: 50 | 51 | class scoped_lock 52 | { 53 | private: 54 | 55 | spinlock & sp_; 56 | 57 | scoped_lock( scoped_lock const & ); 58 | scoped_lock & operator=( scoped_lock const & ); 59 | 60 | public: 61 | 62 | explicit scoped_lock( spinlock & sp ): sp_( sp ) 63 | { 64 | sp.lock(); 65 | } 66 | 67 | ~scoped_lock() 68 | { 69 | sp_.unlock(); 70 | } 71 | }; 72 | }; 73 | 74 | } // namespace detail 75 | } // namespace boost 76 | 77 | #define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER } 78 | 79 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED 80 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/bad_weak_ptr.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/smart_ptr/bad_weak_ptr.hpp 12 | // 13 | // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | 20 | #include 21 | 22 | #ifdef __BORLANDC__ 23 | # pragma warn -8026 // Functions with excep. spec. are not expanded inline 24 | #endif 25 | 26 | namespace boost 27 | { 28 | 29 | // The standard library that comes with Borland C++ 5.5.1, 5.6.4 30 | // defines std::exception and its members as having C calling 31 | // convention (-pc). When the definition of bad_weak_ptr 32 | // is compiled with -ps, the compiler issues an error. 33 | // Hence, the temporary #pragma option -pc below. 34 | 35 | #if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 36 | # pragma option push -pc 37 | #endif 38 | 39 | class bad_weak_ptr: public std::exception 40 | { 41 | public: 42 | 43 | virtual char const * what() const throw() 44 | { 45 | return "tr1::bad_weak_ptr"; 46 | } 47 | }; 48 | 49 | #if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 50 | # pragma option pop 51 | #endif 52 | 53 | } // namespace boost 54 | 55 | #ifdef __BORLANDC__ 56 | # pragma warn .8026 // Functions with excep. spec. are not expanded inline 57 | #endif 58 | 59 | #endif // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED 60 | -------------------------------------------------------------------------------- /deps/boost/type_traits/msvc/remove_bounds.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Peder Holt 2 | // Use, modification and distribution is subject to the Boost Software 3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | #ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827 6 | #define BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827 7 | 8 | #include 9 | #include 10 | 11 | namespace boost { 12 | namespace detail { 13 | template 14 | struct remove_bounds_impl_typeof { 15 | template 16 | struct inner { 17 | typedef T type; 18 | }; 19 | }; 20 | template<> 21 | struct remove_bounds_impl_typeof { 22 | template 23 | struct inner { 24 | template 25 | static msvc_register_type test(U[]); 26 | static msvc_register_type test(...); 27 | BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) )); 28 | typedef typename msvc_extract_type::id2type::type type; 29 | }; 30 | }; 31 | } //namespace detail 32 | 33 | template 34 | struct remove_bounds { 35 | typedef typename boost::detail::remove_bounds_impl_typeof< 36 | boost::is_array::value 37 | >::template inner >::type type; 38 | BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T) 39 | }; 40 | } //namespace boost 41 | 42 | #endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827 43 | 44 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/debug/error.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP 13 | # define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_ERROR */ 19 | # 20 | # if BOOST_PP_CONFIG_ERRORS 21 | # define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code) 22 | # endif 23 | # 24 | # define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS) 25 | # define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW) 26 | # define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW) 27 | # define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW) 28 | # define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW) 29 | # define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW) 30 | # define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW) 31 | # define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO) 32 | # 33 | # endif 34 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_arithmetic.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 10 | #define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 11 | 12 | #if !defined( __CODEGEARC__ ) 13 | #include 14 | #include 15 | #include 16 | #include 17 | #endif 18 | 19 | // should be the last #include 20 | #include 21 | 22 | namespace boost { 23 | 24 | #if !defined(__CODEGEARC__) 25 | namespace detail { 26 | 27 | template< typename T > 28 | struct is_arithmetic_impl 29 | { 30 | BOOST_STATIC_CONSTANT(bool, value = 31 | (::boost::type_traits::ice_or< 32 | ::boost::is_integral::value, 33 | ::boost::is_float::value 34 | >::value)); 35 | }; 36 | 37 | } // namespace detail 38 | #endif 39 | 40 | //* is a type T an arithmetic type described in the standard (3.9.1p8) 41 | #if defined(__CODEGEARC__) 42 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,__is_arithmetic(T)) 43 | #else 44 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::boost::detail::is_arithmetic_impl::value) 45 | #endif 46 | 47 | } // namespace boost 48 | 49 | #include 50 | 51 | #endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 52 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/repetition/enum_params.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP 15 | # define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_ENUM_PARAMS */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param) 25 | # else 26 | # define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_ENUM_PARAMS_I(count, param) 27 | # define BOOST_PP_ENUM_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param) 28 | # endif 29 | # 30 | # define BOOST_PP_ENUM_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) param ## n 31 | # 32 | # /* BOOST_PP_ENUM_PARAMS_Z */ 33 | # 34 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 35 | # define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param) 36 | # else 37 | # define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) 38 | # define BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param) 39 | # endif 40 | # 41 | # endif 42 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/spinlock.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/spinlock.hpp 12 | // 13 | // Copyright (c) 2008 Peter Dimov 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. 16 | // See accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | // struct spinlock 20 | // { 21 | // void lock(); 22 | // bool try_lock(); 23 | // void unlock(); 24 | // 25 | // class scoped_lock; 26 | // }; 27 | // 28 | // #define BOOST_DETAIL_SPINLOCK_INIT 29 | // 30 | 31 | #include 32 | #include 33 | 34 | #if defined( BOOST_SP_USE_PTHREADS ) 35 | # include 36 | 37 | #elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ ) 38 | # include 39 | 40 | #elif defined( BOOST_SP_HAS_SYNC ) 41 | # include 42 | 43 | #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) 44 | # include 45 | 46 | #elif defined(BOOST_HAS_PTHREADS) 47 | # include 48 | 49 | #elif !defined(BOOST_HAS_THREADS) 50 | # include 51 | 52 | #else 53 | # error Unrecognized threading platform 54 | #endif 55 | 56 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED 57 | -------------------------------------------------------------------------------- /deps/boost/type_traits/msvc/remove_reference.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Peder Holt 2 | // Use, modification and distribution is subject to the Boost Software 3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | #ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827 6 | #define BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827 7 | 8 | #include 9 | #include 10 | 11 | namespace boost { 12 | namespace detail { 13 | template 14 | struct remove_reference_impl_typeof { 15 | template 16 | struct inner { 17 | typedef T type; 18 | }; 19 | }; 20 | template<> 21 | struct remove_reference_impl_typeof { 22 | template 23 | struct inner { 24 | template 25 | static msvc_register_type test(U&(*)()); 26 | static msvc_register_type test(...); 27 | BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) )); 28 | typedef typename msvc_extract_type::id2type::type type; 29 | }; 30 | }; 31 | } //namespace detail 32 | 33 | template 34 | struct remove_reference { 35 | typedef typename boost::detail::remove_reference_impl_typeof< 36 | boost::is_reference::value 37 | >::template inner >::type type; 38 | BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T) 39 | }; 40 | } //namespace boost 41 | 42 | #endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827 43 | -------------------------------------------------------------------------------- /examples/example_inplace.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Implementation note: this version targets C++03. 4 | // 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | #define has_trivial_destructor is_trivially_destructible 10 | #include "../../Spikes/Optional/optional.hpp" 11 | 12 | //#include "../alexandrescu/expected.hpp" 13 | //#include "../nonco/expected.hpp" 14 | //#include "expected_lite.hpp" 15 | //#include "expected.hpp" 16 | #include 17 | 18 | struct Guard 19 | { 20 | std::string val; 21 | Guard() : val{} {} 22 | explicit Guard(std::string s, int = 0) : val(s) {} 23 | 24 | Guard(const Guard&) = delete; 25 | Guard(Guard&&) = delete; 26 | void operator=(const Guard&) = delete; 27 | void operator=(Guard&&) = delete; 28 | }; 29 | 30 | int main() 31 | { 32 | // std::optional<> 33 | namespace tr2 = std::experimental; 34 | 35 | tr2::optional< Guard > oge{ tr2::emplace, "guard" }; 36 | tr2::optional< Guard > og; 37 | og.emplace( "guard" ); 38 | 39 | // Andrei's Expected<> 40 | // Expected< Guard > ege{ "guard" }; 41 | // Expected< Guard > eg; 42 | // eg.emplace( "guard" ); 43 | 44 | // Nonco's expected<> 45 | // expected< Guard > ege{ "guard" }; 46 | // expected< Guard > eg; 47 | // eg.emplace( "guard" ); 48 | 49 | // nonstd::expected<> 50 | // using namespace nonstd; 51 | // expected< Guard > ege{ "guard" }; 52 | // expected< Guard > eg; 53 | // eg.emplace( "guard" ); 54 | } 55 | 56 | // g++ -Wall -Wextra -std=c++11 -I.. -o example_inplace.exe example_inplace.cpp && example_inplace 57 | -------------------------------------------------------------------------------- /deps/boost/current_function.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED 2 | #define BOOST_CURRENT_FUNCTION_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/current_function.hpp - BOOST_CURRENT_FUNCTION 12 | // 13 | // Copyright (c) 2002 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | // http://www.boost.org/libs/utility/current_function.html 20 | // 21 | 22 | namespace boost 23 | { 24 | 25 | namespace detail 26 | { 27 | 28 | inline void current_function_helper() 29 | { 30 | 31 | #if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) 32 | 33 | # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ 34 | 35 | #elif defined(__DMC__) && (__DMC__ >= 0x810) 36 | 37 | # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ 38 | 39 | #elif defined(__FUNCSIG__) 40 | 41 | # define BOOST_CURRENT_FUNCTION __FUNCSIG__ 42 | 43 | #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) 44 | 45 | # define BOOST_CURRENT_FUNCTION __FUNCTION__ 46 | 47 | #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) 48 | 49 | # define BOOST_CURRENT_FUNCTION __FUNC__ 50 | 51 | #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) 52 | 53 | # define BOOST_CURRENT_FUNCTION __func__ 54 | 55 | #else 56 | 57 | # define BOOST_CURRENT_FUNCTION "(unknown)" 58 | 59 | #endif 60 | 61 | } 62 | 63 | } // namespace detail 64 | 65 | } // namespace boost 66 | 67 | #endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED 68 | 69 | -------------------------------------------------------------------------------- /deps/boost/mpl/integral_c.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED 3 | #define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2006 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: integral_c.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #if BOOST_WORKAROUND(__HP_aCC, <= 53800) 23 | // the type of non-type template arguments may not depend on template arguments 24 | # define AUX_WRAPPER_PARAMS(N) typename T, long N 25 | #else 26 | # define AUX_WRAPPER_PARAMS(N) typename T, T N 27 | #endif 28 | 29 | #define AUX_WRAPPER_NAME integral_c 30 | #define AUX_WRAPPER_VALUE_TYPE T 31 | #define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value > 32 | #include 33 | 34 | 35 | #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ 36 | && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551) 37 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 38 | // 'bool' constant doesn't have 'next'/'prior' members 39 | template< bool C > 40 | struct integral_c 41 | { 42 | BOOST_STATIC_CONSTANT(bool, value = C); 43 | typedef integral_c_tag tag; 44 | typedef integral_c type; 45 | typedef bool value_type; 46 | operator bool() const { return this->value; } 47 | }; 48 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 49 | #endif 50 | 51 | #endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED 52 | -------------------------------------------------------------------------------- /deps/boost/type_traits/is_union.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_IS_UNION_HPP_INCLUDED 12 | #define BOOST_TT_IS_UNION_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | // should be the last #include 19 | #include 20 | 21 | namespace boost { 22 | 23 | namespace detail { 24 | #ifndef __GNUC__ 25 | template struct is_union_impl 26 | { 27 | typedef typename remove_cv::type cvt; 28 | #ifdef BOOST_IS_UNION 29 | BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt)); 30 | #else 31 | BOOST_STATIC_CONSTANT(bool, value = false); 32 | #endif 33 | }; 34 | #else 35 | // 36 | // using remove_cv here generates a whole load of needless 37 | // warnings with gcc, since it doesn't do any good with gcc 38 | // in any case (at least at present), just remove it: 39 | // 40 | template struct is_union_impl 41 | { 42 | #ifdef BOOST_IS_UNION 43 | BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T)); 44 | #else 45 | BOOST_STATIC_CONSTANT(bool, value = false); 46 | #endif 47 | }; 48 | #endif 49 | } // namespace detail 50 | 51 | BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl::value) 52 | 53 | } // namespace boost 54 | 55 | #include 56 | 57 | #endif // BOOST_TT_IS_UNION_HPP_INCLUDED 58 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/config/dtp.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-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: dtp.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | // MWCW 7.x-8.0 "losts" default template parameters of nested class 20 | // templates when their owner classes are passed as arguments to other 21 | // templates; Borland 5.5.1 "forgets" them from the very beginning (if 22 | // the owner class is a class template), and Borland 5.6 isn't even 23 | // able to compile a definition of nested class template with DTP 24 | 25 | #if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ 26 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 27 | && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ 28 | && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) 29 | 30 | # define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES 31 | 32 | #endif 33 | 34 | 35 | #if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ 36 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 37 | && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ 38 | || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 39 | || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ 40 | ) 41 | 42 | # define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES 43 | 44 | #endif 45 | 46 | #endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED 47 | -------------------------------------------------------------------------------- /deps/boost/config/stdlib/modena.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jens Maurer 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Modena C++ standard library (comes with KAI C++) 9 | 10 | #if !defined(MSIPL_COMPILE_H) 11 | # include 12 | # if !defined(__MSIPL_COMPILE_H) 13 | # error "This is not the Modena C++ library!" 14 | # endif 15 | #endif 16 | 17 | #ifndef MSIPL_NL_TYPES 18 | #define BOOST_NO_STD_MESSAGES 19 | #endif 20 | 21 | #ifndef MSIPL_WCHART 22 | #define BOOST_NO_STD_WSTRING 23 | #endif 24 | 25 | // C++0x headers not yet implemented 26 | // 27 | # define BOOST_NO_CXX11_HDR_ARRAY 28 | # define BOOST_NO_CXX11_HDR_CHRONO 29 | # define BOOST_NO_CXX11_HDR_CODECVT 30 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 31 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 32 | # define BOOST_NO_CXX11_HDR_FUTURE 33 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 34 | # define BOOST_NO_CXX11_HDR_MUTEX 35 | # define BOOST_NO_CXX11_HDR_RANDOM 36 | # define BOOST_NO_CXX11_HDR_RATIO 37 | # define BOOST_NO_CXX11_HDR_REGEX 38 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 39 | # define BOOST_NO_CXX11_HDR_THREAD 40 | # define BOOST_NO_CXX11_HDR_TUPLE 41 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 42 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 43 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 44 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 45 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 46 | # define BOOST_NO_CXX11_ALLOCATOR 47 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 48 | # define BOOST_NO_CXX11_SMART_PTR 49 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 50 | 51 | #define BOOST_STDLIB "Modena C++ standard library" 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/adl_barrier.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-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: adl_barrier.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) 22 | 23 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_ 24 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ { 25 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE } 26 | # define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \ 27 | namespace boost { namespace mpl { \ 28 | using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ 29 | } } \ 30 | /**/ 31 | 32 | #if !defined(BOOST_MPL_PREPROCESSING_MODE) 33 | namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} } 34 | namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; 35 | namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; } 36 | }} 37 | #endif 38 | 39 | #else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE 40 | 41 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl 42 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl { 43 | # define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }} 44 | # define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/ 45 | 46 | #endif 47 | 48 | #endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED 49 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/spinlock_nt.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // Copyright (c) 2008 Peter Dimov 12 | // 13 | // Distributed under the Boost Software License, Version 1.0. 14 | // See accompanying file LICENSE_1_0.txt or copy at 15 | // http://www.boost.org/LICENSE_1_0.txt) 16 | // 17 | 18 | #include 19 | 20 | namespace boost 21 | { 22 | 23 | namespace detail 24 | { 25 | 26 | class spinlock 27 | { 28 | public: 29 | 30 | bool locked_; 31 | 32 | public: 33 | 34 | inline bool try_lock() 35 | { 36 | if( locked_ ) 37 | { 38 | return false; 39 | } 40 | else 41 | { 42 | locked_ = true; 43 | return true; 44 | } 45 | } 46 | 47 | inline void lock() 48 | { 49 | BOOST_ASSERT( !locked_ ); 50 | locked_ = true; 51 | } 52 | 53 | inline void unlock() 54 | { 55 | BOOST_ASSERT( locked_ ); 56 | locked_ = false; 57 | } 58 | 59 | public: 60 | 61 | class scoped_lock 62 | { 63 | private: 64 | 65 | spinlock & sp_; 66 | 67 | scoped_lock( scoped_lock const & ); 68 | scoped_lock & operator=( scoped_lock const & ); 69 | 70 | public: 71 | 72 | explicit scoped_lock( spinlock & sp ): sp_( sp ) 73 | { 74 | sp.lock(); 75 | } 76 | 77 | ~scoped_lock() 78 | { 79 | sp_.unlock(); 80 | } 81 | }; 82 | }; 83 | 84 | } // namespace detail 85 | } // namespace boost 86 | 87 | #define BOOST_DETAIL_SPINLOCK_INIT { false } 88 | 89 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED 90 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED 3 | 4 | // 5 | // boost/detail/atomic_count_gcc_x86.hpp 6 | // 7 | // atomic_count for g++ on 486+/AMD64 8 | // 9 | // Copyright 2007 Peter Dimov 10 | // 11 | // Distributed under the Boost Software License, Version 1.0. (See 12 | // accompanying file LICENSE_1_0.txt or copy at 13 | // http://www.boost.org/LICENSE_1_0.txt) 14 | // 15 | 16 | namespace boost 17 | { 18 | 19 | namespace detail 20 | { 21 | 22 | class atomic_count 23 | { 24 | public: 25 | 26 | explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {} 27 | 28 | long operator++() 29 | { 30 | return atomic_exchange_and_add( &value_, +1 ) + 1; 31 | } 32 | 33 | long operator--() 34 | { 35 | return atomic_exchange_and_add( &value_, -1 ) - 1; 36 | } 37 | 38 | operator long() const 39 | { 40 | return atomic_exchange_and_add( &value_, 0 ); 41 | } 42 | 43 | private: 44 | 45 | atomic_count(atomic_count const &); 46 | atomic_count & operator=(atomic_count const &); 47 | 48 | mutable int value_; 49 | 50 | private: 51 | 52 | static int atomic_exchange_and_add( int * pw, int dv ) 53 | { 54 | // int r = *pw; 55 | // *pw += dv; 56 | // return r; 57 | 58 | int r; 59 | 60 | __asm__ __volatile__ 61 | ( 62 | "lock\n\t" 63 | "xadd %1, %0": 64 | "+m"( *pw ), "=r"( r ): // outputs (%0, %1) 65 | "1"( dv ): // inputs (%2 == %1) 66 | "memory", "cc" // clobbers 67 | ); 68 | 69 | return r; 70 | } 71 | }; 72 | 73 | } // namespace detail 74 | 75 | } // namespace boost 76 | 77 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED 78 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/type_trait_def.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 12 | // $Revision: 1944 $ 13 | 14 | #include 15 | #include 16 | 17 | #define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \ 18 | template< typename T > struct trait \ 19 | { \ 20 | public:\ 21 | typedef result type; \ 22 | BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \ 23 | }; \ 24 | \ 25 | BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ 26 | /**/ 27 | 28 | #define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \ 29 | template<> struct trait \ 30 | { \ 31 | public:\ 32 | typedef result type; \ 33 | BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \ 34 | }; \ 35 | /**/ 36 | 37 | #define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \ 38 | template<> struct trait##_impl \ 39 | { \ 40 | public:\ 41 | typedef result type; \ 42 | }; \ 43 | /**/ 44 | 45 | #define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \ 46 | template< param > struct trait \ 47 | { \ 48 | public:\ 49 | typedef result type; \ 50 | }; \ 51 | /**/ 52 | 53 | #define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \ 54 | template< param1, param2 > struct trait \ 55 | { \ 56 | public:\ 57 | typedef result; \ 58 | }; \ 59 | /**/ 60 | 61 | #define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \ 62 | template< param > struct trait##_impl \ 63 | { \ 64 | public:\ 65 | typedef result type; \ 66 | }; \ 67 | /**/ 68 | -------------------------------------------------------------------------------- /deps/boost/checked_delete.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED 2 | #define BOOST_CHECKED_DELETE_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/checked_delete.hpp 12 | // 13 | // Copyright (c) 2002, 2003 Peter Dimov 14 | // Copyright (c) 2003 Daniel Frey 15 | // Copyright (c) 2003 Howard Hinnant 16 | // 17 | // Distributed under the Boost Software License, Version 1.0. (See 18 | // accompanying file LICENSE_1_0.txt or copy at 19 | // http://www.boost.org/LICENSE_1_0.txt) 20 | // 21 | // See http://www.boost.org/libs/utility/checked_delete.html for documentation. 22 | // 23 | 24 | namespace boost 25 | { 26 | 27 | // verify that types are complete for increased safety 28 | 29 | template inline void checked_delete(T * x) 30 | { 31 | // intentionally complex - simplification causes regressions 32 | typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; 33 | (void) sizeof(type_must_be_complete); 34 | delete x; 35 | } 36 | 37 | template inline void checked_array_delete(T * x) 38 | { 39 | typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; 40 | (void) sizeof(type_must_be_complete); 41 | delete [] x; 42 | } 43 | 44 | template struct checked_deleter 45 | { 46 | typedef void result_type; 47 | typedef T * argument_type; 48 | 49 | void operator()(T * x) const 50 | { 51 | // boost:: disables ADL 52 | boost::checked_delete(x); 53 | } 54 | }; 55 | 56 | template struct checked_array_deleter 57 | { 58 | typedef void result_type; 59 | typedef T * argument_type; 60 | 61 | void operator()(T * x) const 62 | { 63 | boost::checked_array_delete(x); 64 | } 65 | }; 66 | 67 | } // namespace boost 68 | 69 | #endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED 70 | -------------------------------------------------------------------------------- /deps/boost/config/compiler/comeau.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright Douglas Gregor 2001. 3 | // (C) Copyright Peter Dimov 2001. 4 | // (C) Copyright Aleksey Gurtovoy 2003. 5 | // (C) Copyright Beman Dawes 2003. 6 | // (C) Copyright Jens Maurer 2003. 7 | // Use, modification and distribution are subject to the 8 | // Boost Software License, Version 1.0. (See accompanying file 9 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | // See http://www.boost.org for most recent version. 12 | 13 | // Comeau C++ compiler setup: 14 | 15 | #include "boost/config/compiler/common_edg.hpp" 16 | 17 | #if (__COMO_VERSION__ <= 4245) 18 | 19 | # if defined(_MSC_VER) && _MSC_VER <= 1300 20 | # if _MSC_VER > 100 21 | // only set this in non-strict mode: 22 | # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 23 | # endif 24 | # endif 25 | 26 | // Void returns don't work when emulating VC 6 (Peter Dimov) 27 | // TODO: look up if this doesn't apply to the whole 12xx range 28 | # if defined(_MSC_VER) && (_MSC_VER < 1300) 29 | # define BOOST_NO_VOID_RETURNS 30 | # endif 31 | 32 | #endif // version 4245 33 | 34 | // 35 | // enable __int64 support in VC emulation mode 36 | // 37 | # if defined(_MSC_VER) && (_MSC_VER >= 1200) 38 | # define BOOST_HAS_MS_INT64 39 | # endif 40 | 41 | #define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) 42 | 43 | // 44 | // versions check: 45 | // we don't know Comeau prior to version 4245: 46 | #if __COMO_VERSION__ < 4245 47 | # error "Compiler not configured - please reconfigure" 48 | #endif 49 | // 50 | // last known and checked version is 4245: 51 | #if (__COMO_VERSION__ > 4245) 52 | # if defined(BOOST_ASSERT_CONFIG) 53 | # error "Unknown compiler version - please run the configure tests and report the results" 54 | # endif 55 | #endif 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/spinlock_sync.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // Copyright (c) 2008 Peter Dimov 12 | // 13 | // Distributed under the Boost Software License, Version 1.0. 14 | // See accompanying file LICENSE_1_0.txt or copy at 15 | // http://www.boost.org/LICENSE_1_0.txt) 16 | // 17 | 18 | #include 19 | 20 | #if defined( __ia64__ ) && defined( __INTEL_COMPILER ) 21 | # include 22 | #endif 23 | 24 | namespace boost 25 | { 26 | 27 | namespace detail 28 | { 29 | 30 | class spinlock 31 | { 32 | public: 33 | 34 | int v_; 35 | 36 | public: 37 | 38 | bool try_lock() 39 | { 40 | int r = __sync_lock_test_and_set( &v_, 1 ); 41 | return r == 0; 42 | } 43 | 44 | void lock() 45 | { 46 | for( unsigned k = 0; !try_lock(); ++k ) 47 | { 48 | boost::detail::yield( k ); 49 | } 50 | } 51 | 52 | void unlock() 53 | { 54 | __sync_lock_release( &v_ ); 55 | } 56 | 57 | public: 58 | 59 | class scoped_lock 60 | { 61 | private: 62 | 63 | spinlock & sp_; 64 | 65 | scoped_lock( scoped_lock const & ); 66 | scoped_lock & operator=( scoped_lock const & ); 67 | 68 | public: 69 | 70 | explicit scoped_lock( spinlock & sp ): sp_( sp ) 71 | { 72 | sp.lock(); 73 | } 74 | 75 | ~scoped_lock() 76 | { 77 | sp_.unlock(); 78 | } 79 | }; 80 | }; 81 | 82 | } // namespace detail 83 | } // namespace boost 84 | 85 | #define BOOST_DETAIL_SPINLOCK_INIT {0} 86 | 87 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED 88 | -------------------------------------------------------------------------------- /examples/example_disengaged.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Martin Moene. 2 | // 3 | // Implementation note: this version targets C++03. 4 | // 5 | // Use, modification, and distribution is subject to the Boost Software 6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | #include "expected_lite.hpp" 10 | #include 11 | 12 | nonstd::expected foo() 13 | { 14 | return 77; 15 | } 16 | 17 | nonstd::expected bar() 18 | { 19 | return nonstd::expected( 20 | nonstd::nullexp, std::make_exception_ptr( std::runtime_error( "disengaged" ) ) ); 21 | } 22 | 23 | template 24 | std::ostream & operator<<( std::ostream & os, nonstd::expected const & arg ) 25 | { 26 | return os << arg.value(); 27 | } 28 | 29 | int main() 30 | { 31 | using namespace nonstd; 32 | 33 | try 34 | { 35 | expected f = foo(); 36 | expected b = bar(); // propagate error via b 37 | 38 | std::cout << "f: "; std::cout << f << std::endl; 39 | std::cout << "b: "; std::cout << b << std::endl; 40 | 41 | // using value of b yields a std::runtime_error: 42 | } 43 | catch ( std::runtime_error const & e ) 44 | { 45 | std::cout << "Error (runtime_error): " << e.what() << std::endl; 46 | } 47 | catch ( std::exception const & e ) 48 | { 49 | std::cout << "Error (exception): " << e.what() << std::endl; 50 | } 51 | catch (...) 52 | { 53 | assert( false ); 54 | } 55 | 56 | return 0; // VC6 57 | } 58 | 59 | // cl -nologo -W3 -EHsc -I.. -I../deps example_disengaged.cpp && example_disengaged 60 | // g++ -Wall -Wextra -std=c++03 -I.. -I../deps -o example_disengaged.exe example_disengaged.cpp && example_disengaged 61 | // g++ -Wall -Wextra -std=c++11 -I.. -o example_disengaged.exe example_disengaged.cpp && example_disengaged 62 | -------------------------------------------------------------------------------- /deps/boost/type_traits/detail/size_t_trait_def.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 12 | // $Revision: 1944 $ 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #include 20 | 21 | #if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300 22 | # define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::integral_constant 23 | # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/ 24 | #else 25 | # define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::mpl::size_t 26 | # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ 27 | typedef ::boost::mpl::size_t base_; \ 28 | using base_::value; \ 29 | /**/ 30 | #endif 31 | 32 | 33 | #define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \ 34 | template< typename T > struct trait \ 35 | : BOOST_TT_AUX_SIZE_T_BASE(C) \ 36 | { \ 37 | public:\ 38 | BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ 39 | BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \ 40 | }; \ 41 | \ 42 | BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ 43 | /**/ 44 | 45 | #define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \ 46 | template<> struct trait \ 47 | : BOOST_TT_AUX_SIZE_T_BASE(C) \ 48 | { \ 49 | public:\ 50 | BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ 51 | BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \ 52 | }; \ 53 | /**/ 54 | 55 | #define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \ 56 | template< param > struct trait \ 57 | : BOOST_TT_AUX_SIZE_T_BASE(C) \ 58 | { \ 59 | }; \ 60 | /**/ 61 | -------------------------------------------------------------------------------- /deps/boost/config/stdlib/vacpp.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #if __IBMCPP__ <= 501 9 | # define BOOST_NO_STD_ALLOCATOR 10 | #endif 11 | 12 | #define BOOST_HAS_MACRO_USE_FACET 13 | #define BOOST_NO_STD_MESSAGES 14 | 15 | // Apple doesn't seem to reliably defined a *unix* macro 16 | #if !defined(CYGWIN) && ( defined(__unix__) \ 17 | || defined(__unix) \ 18 | || defined(unix) \ 19 | || defined(__APPLE__) \ 20 | || defined(__APPLE) \ 21 | || defined(APPLE)) 22 | # include 23 | #endif 24 | 25 | // C++0x headers not yet implemented 26 | // 27 | # define BOOST_NO_CXX11_HDR_ARRAY 28 | # define BOOST_NO_CXX11_HDR_CHRONO 29 | # define BOOST_NO_CXX11_HDR_CODECVT 30 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 31 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 32 | # define BOOST_NO_CXX11_HDR_FUTURE 33 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 34 | # define BOOST_NO_CXX11_HDR_MUTEX 35 | # define BOOST_NO_CXX11_HDR_RANDOM 36 | # define BOOST_NO_CXX11_HDR_RATIO 37 | # define BOOST_NO_CXX11_HDR_REGEX 38 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 39 | # define BOOST_NO_CXX11_HDR_THREAD 40 | # define BOOST_NO_CXX11_HDR_TUPLE 41 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 42 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 43 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 44 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 45 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 46 | # define BOOST_NO_CXX11_ALLOCATOR 47 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 48 | # define BOOST_NO_CXX11_SMART_PTR 49 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 50 | 51 | #define BOOST_STDLIB "Visual Age default standard library" 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /deps/boost/config/warning_disable.hpp: -------------------------------------------------------------------------------- 1 | // Copyright John Maddock 2008 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // This file exists to turn off some overly-pedantic warning emitted 7 | // by certain compilers. You should include this header only in: 8 | // 9 | // * A test case, before any other headers, or, 10 | // * A library source file before any other headers. 11 | // 12 | // IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. 13 | // 14 | // YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. 15 | // 16 | // The only warnings disabled here are those that are: 17 | // 18 | // * Quite unreasonably pedantic. 19 | // * Generally only emitted by a single compiler. 20 | // * Can't easily be fixed: for example if the vendors own std lib 21 | // code emits these warnings! 22 | // 23 | // Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: 24 | // not even std library ones! Doing so may turn the warning 25 | // off too late to be of any use. For example the VC++ C4996 26 | // warning can be emitted from if that header is included 27 | // before or by this one :-( 28 | // 29 | 30 | #ifndef BOOST_CONFIG_WARNING_DISABLE_HPP 31 | #define BOOST_CONFIG_WARNING_DISABLE_HPP 32 | 33 | #if defined(_MSC_VER) && (_MSC_VER >= 1400) 34 | // Error 'function': was declared deprecated 35 | // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx 36 | // This error is emitted when you use some perfectly conforming 37 | // std lib functions in a perfectly correct way, and also by 38 | // some of Microsoft's own std lib code ! 39 | # pragma warning(disable:4996) 40 | #endif 41 | #if defined(__INTEL_COMPILER) || defined(__ICL) 42 | // As above: gives warning when a "deprecated" 43 | // std library function is encountered. 44 | # pragma warning(disable:1786) 45 | #endif 46 | 47 | #endif // BOOST_CONFIG_WARNING_DISABLE_HPP 48 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/arithmetic/sub.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP 15 | # define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # /* BOOST_PP_SUB */ 23 | # 24 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 25 | # define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) 26 | # else 27 | # define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y) 28 | # define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) 29 | # endif 30 | # 31 | # define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) 32 | # 33 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 34 | # define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy 35 | # else 36 | # define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) 37 | # endif 38 | # 39 | # define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y)) 40 | # 41 | # /* BOOST_PP_SUB_D */ 42 | # 43 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 44 | # define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) 45 | # else 46 | # define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y) 47 | # define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) 48 | # endif 49 | # 50 | # endif 51 | -------------------------------------------------------------------------------- /deps/boost/mpl/aux_/preprocessor/enum.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_PREPROCESSOR_ENUM_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: enum.hpp 1944 2012-11-02 14:01:05Z moene $ 14 | // $Date: 2012-11-02 15:01:05 +0100 (Fri, 02 Nov 2012) $ 15 | // $Revision: 1944 $ 16 | 17 | #include 18 | 19 | // BOOST_MPL_PP_ENUM(0,int): 20 | // BOOST_MPL_PP_ENUM(1,int): int 21 | // BOOST_MPL_PP_ENUM(2,int): int, int 22 | // BOOST_MPL_PP_ENUM(n,int): int, int, .., int 23 | 24 | #if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) 25 | 26 | # include 27 | 28 | # define BOOST_MPL_PP_ENUM(n, param) \ 29 | BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \ 30 | /**/ 31 | 32 | # define BOOST_MPL_PP_ENUM_0(p) 33 | # define BOOST_MPL_PP_ENUM_1(p) p 34 | # define BOOST_MPL_PP_ENUM_2(p) p,p 35 | # define BOOST_MPL_PP_ENUM_3(p) p,p,p 36 | # define BOOST_MPL_PP_ENUM_4(p) p,p,p,p 37 | # define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p 38 | # define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p 39 | # define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p 40 | # define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p 41 | # define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p 42 | 43 | #else 44 | 45 | # include 46 | # include 47 | 48 | # define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \ 49 | BOOST_PP_COMMA_IF(i) param \ 50 | /**/ 51 | 52 | # define BOOST_MPL_PP_ENUM(n, param) \ 53 | BOOST_PP_REPEAT( \ 54 | n \ 55 | , BOOST_MPL_PP_AUX_ENUM_FUNC \ 56 | , param \ 57 | ) \ 58 | /**/ 59 | 60 | #endif 61 | 62 | #endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED 63 | -------------------------------------------------------------------------------- /deps/boost/preprocessor/arithmetic/add.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP 15 | # define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | # 23 | # /* BOOST_PP_ADD */ 24 | # 25 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 26 | # define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) 27 | # else 28 | # define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y) 29 | # define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) 30 | # endif 31 | # 32 | # define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) 33 | # 34 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 35 | # define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy 36 | # else 37 | # define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) 38 | # endif 39 | # 40 | # define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y)) 41 | # 42 | # /* BOOST_PP_ADD_D */ 43 | # 44 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 45 | # define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) 46 | # else 47 | # define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y) 48 | # define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) 49 | # endif 50 | # 51 | # endif 52 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/sp_convertible.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // detail/sp_convertible.hpp 11 | // 12 | // Copyright 2008 Peter Dimov 13 | // 14 | // Distributed under the Boost Software License, Version 1.0. 15 | // See accompanying file LICENSE_1_0.txt or copy at 16 | // http://www.boost.org/LICENSE_1_0.txt 17 | 18 | #include 19 | 20 | #if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE ) 21 | # define BOOST_SP_NO_SP_CONVERTIBLE 22 | #endif 23 | 24 | #if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 ) 25 | # define BOOST_SP_NO_SP_CONVERTIBLE 26 | #endif 27 | 28 | #if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 ) 29 | # define BOOST_SP_NO_SP_CONVERTIBLE 30 | #endif 31 | 32 | #if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) 33 | 34 | namespace boost 35 | { 36 | 37 | namespace detail 38 | { 39 | 40 | template< class Y, class T > struct sp_convertible 41 | { 42 | typedef char (&yes) [1]; 43 | typedef char (&no) [2]; 44 | 45 | static yes f( T* ); 46 | static no f( ... ); 47 | 48 | enum _vt { value = sizeof( (f)( static_cast(0) ) ) == sizeof(yes) }; 49 | }; 50 | 51 | struct sp_empty 52 | { 53 | }; 54 | 55 | template< bool > struct sp_enable_if_convertible_impl; 56 | 57 | template<> struct sp_enable_if_convertible_impl 58 | { 59 | typedef sp_empty type; 60 | }; 61 | 62 | template<> struct sp_enable_if_convertible_impl 63 | { 64 | }; 65 | 66 | template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value > 67 | { 68 | }; 69 | 70 | } // namespace detail 71 | 72 | } // namespace boost 73 | 74 | #endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE ) 75 | 76 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED 77 | -------------------------------------------------------------------------------- /deps/boost/smart_ptr/detail/lwm_pthreads.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // 11 | // boost/detail/lwm_pthreads.hpp 12 | // 13 | // Copyright (c) 2002 Peter Dimov and Multi Media Ltd. 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. (See 16 | // accompanying file LICENSE_1_0.txt or copy at 17 | // http://www.boost.org/LICENSE_1_0.txt) 18 | // 19 | 20 | #include 21 | #include 22 | 23 | namespace boost 24 | { 25 | 26 | namespace detail 27 | { 28 | 29 | class lightweight_mutex 30 | { 31 | private: 32 | 33 | pthread_mutex_t m_; 34 | 35 | lightweight_mutex(lightweight_mutex const &); 36 | lightweight_mutex & operator=(lightweight_mutex const &); 37 | 38 | public: 39 | 40 | lightweight_mutex() 41 | { 42 | 43 | // HPUX 10.20 / DCE has a nonstandard pthread_mutex_init 44 | 45 | #if defined(__hpux) && defined(_DECTHREADS_) 46 | BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 ); 47 | #else 48 | BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 ); 49 | #endif 50 | } 51 | 52 | ~lightweight_mutex() 53 | { 54 | BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 ); 55 | } 56 | 57 | class scoped_lock; 58 | friend class scoped_lock; 59 | 60 | class scoped_lock 61 | { 62 | private: 63 | 64 | pthread_mutex_t & m_; 65 | 66 | scoped_lock(scoped_lock const &); 67 | scoped_lock & operator=(scoped_lock const &); 68 | 69 | public: 70 | 71 | scoped_lock(lightweight_mutex & m): m_(m.m_) 72 | { 73 | BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); 74 | } 75 | 76 | ~scoped_lock() 77 | { 78 | BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); 79 | } 80 | }; 81 | }; 82 | 83 | } // namespace detail 84 | 85 | } // namespace boost 86 | 87 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED 88 | --------------------------------------------------------------------------------