From a90a7f205f1ef4355b75c2b482a831df68f291cb Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Fri, 19 Apr 2013 20:32:02 +0200 Subject: [PATCH] Update boost to 1.53.0 --- boost/boost/array.hpp | 446 +++++ boost/boost/bind/bind_mf2_cc.hpp | 0 boost/boost/concept/assert.hpp | 46 + .../concept/detail/backward_compatibility.hpp | 16 + boost/boost/concept/detail/borland.hpp | 30 + boost/boost/concept/detail/concept_def.hpp | 51 + boost/boost/concept/detail/concept_undef.hpp | 5 + boost/boost/concept/detail/general.hpp | 75 + .../boost/concept/detail/has_constraints.hpp | 50 + boost/boost/concept/detail/msvc.hpp | 114 ++ boost/boost/concept/usage.hpp | 44 + boost/boost/concept_check.hpp | 1083 +++++++++++ boost/boost/config/auto_link.hpp | 145 +- boost/boost/config/compiler/borland.hpp | 56 +- boost/boost/config/compiler/clang.hpp | 75 +- boost/boost/config/compiler/codegear.hpp | 39 +- boost/boost/config/compiler/common_edg.hpp | 52 +- boost/boost/config/compiler/cray.hpp | 46 +- boost/boost/config/compiler/digitalmars.hpp | 50 +- boost/boost/config/compiler/gcc.hpp | 66 +- boost/boost/config/compiler/gcc_xml.hpp | 51 +- boost/boost/config/compiler/hp_acc.hpp | 50 +- boost/boost/config/compiler/intel.hpp | 50 +- boost/boost/config/compiler/metrowerks.hpp | 52 +- boost/boost/config/compiler/mpw.hpp | 52 +- boost/boost/config/compiler/pathscale.hpp | 82 +- boost/boost/config/compiler/pgi.hpp | 99 +- boost/boost/config/compiler/sunpro_cc.hpp | 52 +- boost/boost/config/compiler/vacpp.hpp | 60 +- boost/boost/config/compiler/visualc.hpp | 147 +- boost/boost/config/no_tr1/complex.hpp | 0 boost/boost/config/no_tr1/functional.hpp | 0 boost/boost/config/no_tr1/memory.hpp | 0 boost/boost/config/platform/vxworks.hpp | 0 boost/boost/config/stdlib/dinkumware.hpp | 54 +- boost/boost/config/stdlib/libcomo.hpp | 43 +- boost/boost/config/stdlib/libcpp.hpp | 9 +- boost/boost/config/stdlib/libstdcpp3.hpp | 58 +- boost/boost/config/stdlib/modena.hpp | 43 +- boost/boost/config/stdlib/msl.hpp | 43 +- boost/boost/config/stdlib/roguewave.hpp | 43 +- boost/boost/config/stdlib/sgi.hpp | 43 +- boost/boost/config/stdlib/stlport.hpp | 47 +- boost/boost/config/stdlib/vacpp.hpp | 43 +- boost/boost/config/suffix.hpp | 348 +++- boost/boost/container/container_fwd.hpp | 82 +- boost/boost/detail/call_traits.hpp | 20 +- boost/boost/detail/container_fwd.hpp | 15 +- boost/boost/detail/endian.hpp | 0 boost/boost/detail/interlocked.hpp | 17 + boost/boost/detail/is_function_ref_tester.hpp | 0 boost/boost/detail/lcast_precision.hpp | 0 boost/boost/detail/sp_typeinfo.hpp | 0 .../exception/detail/attribute_noreturn.hpp | 2 +- boost/boost/exception/exception.hpp | 31 +- boost/boost/function/function_template.hpp | 53 +- .../hash/detail/float_functions.hpp | 90 + .../functional/hash/detail/hash_float.hpp | 206 +- .../hash/detail/hash_float_generic.hpp | 91 - .../functional/hash/detail/hash_float_x86.hpp | 56 - boost/boost/functional/hash/extensions.hpp | 111 +- boost/boost/functional/hash/hash.hpp | 202 +- boost/boost/functional/hash_fwd.hpp | 7 + boost/boost/get_pointer.hpp | 19 +- boost/boost/implicit_cast.hpp | 29 - boost/boost/integer.hpp | 34 +- boost/boost/integer_traits.hpp | 2 +- boost/boost/is_placeholder.hpp | 0 boost/boost/iterator/iterator_concepts.hpp | 284 +++ boost/boost/iterator/iterator_facade.hpp | 68 +- boost/boost/iterator/reverse_iterator.hpp | 69 + boost/boost/lexical_cast.hpp | 1697 ++++++++++------- boost/boost/math/policies/policy.hpp | 8 +- .../math/special_functions/fpclassify.hpp | 95 +- .../boost/math/special_functions/math_fwd.hpp | 226 +++ boost/boost/math/tools/config.hpp | 18 +- boost/boost/memory_order.hpp | 0 boost/boost/mpl/O1_size.hpp | 2 +- boost/boost/mpl/O1_size_fwd.hpp | 2 +- boost/boost/mpl/advance.hpp | 2 +- boost/boost/mpl/advance_fwd.hpp | 2 +- boost/boost/mpl/always.hpp | 2 +- boost/boost/mpl/and.hpp | 2 +- boost/boost/mpl/apply.hpp | 2 +- boost/boost/mpl/apply_fwd.hpp | 2 +- boost/boost/mpl/apply_wrap.hpp | 2 +- boost/boost/mpl/arg.hpp | 2 +- boost/boost/mpl/arg_fwd.hpp | 2 +- boost/boost/mpl/assert.hpp | 2 +- boost/boost/mpl/at.hpp | 2 +- boost/boost/mpl/at_fwd.hpp | 2 +- boost/boost/mpl/aux_/O1_size_impl.hpp | 2 +- boost/boost/mpl/aux_/adl_barrier.hpp | 2 +- boost/boost/mpl/aux_/advance_backward.hpp | 2 +- boost/boost/mpl/aux_/advance_forward.hpp | 2 +- boost/boost/mpl/aux_/arg_typedef.hpp | 2 +- boost/boost/mpl/aux_/arithmetic_op.hpp | 2 +- boost/boost/mpl/aux_/arity.hpp | 2 +- boost/boost/mpl/aux_/arity_spec.hpp | 2 +- boost/boost/mpl/aux_/at_impl.hpp | 2 +- boost/boost/mpl/aux_/begin_end_impl.hpp | 2 +- boost/boost/mpl/aux_/clear_impl.hpp | 2 +- boost/boost/mpl/aux_/common_name_wknd.hpp | 2 +- boost/boost/mpl/aux_/comparison_op.hpp | 2 +- boost/boost/mpl/aux_/config/adl.hpp | 2 +- boost/boost/mpl/aux_/config/arrays.hpp | 2 +- boost/boost/mpl/aux_/config/bind.hpp | 2 +- boost/boost/mpl/aux_/config/compiler.hpp | 2 +- boost/boost/mpl/aux_/config/ctps.hpp | 2 +- .../mpl/aux_/config/dmc_ambiguous_ctps.hpp | 2 +- boost/boost/mpl/aux_/config/dtp.hpp | 2 +- boost/boost/mpl/aux_/config/eti.hpp | 2 +- boost/boost/mpl/aux_/config/forwarding.hpp | 2 +- boost/boost/mpl/aux_/config/gcc.hpp | 2 +- boost/boost/mpl/aux_/config/has_apply.hpp | 2 +- boost/boost/mpl/aux_/config/has_xxx.hpp | 2 +- boost/boost/mpl/aux_/config/integral.hpp | 2 +- boost/boost/mpl/aux_/config/intel.hpp | 2 +- boost/boost/mpl/aux_/config/lambda.hpp | 2 +- boost/boost/mpl/aux_/config/msvc.hpp | 2 +- boost/boost/mpl/aux_/config/msvc_typename.hpp | 2 +- boost/boost/mpl/aux_/config/nttp.hpp | 2 +- .../mpl/aux_/config/overload_resolution.hpp | 2 +- boost/boost/mpl/aux_/config/pp_counter.hpp | 2 +- boost/boost/mpl/aux_/config/preprocessor.hpp | 2 +- .../boost/mpl/aux_/config/static_constant.hpp | 2 +- boost/boost/mpl/aux_/config/ttp.hpp | 2 +- boost/boost/mpl/aux_/config/typeof.hpp | 2 +- .../mpl/aux_/config/use_preprocessed.hpp | 2 +- boost/boost/mpl/aux_/config/workaround.hpp | 2 +- boost/boost/mpl/aux_/contains_impl.hpp | 2 +- boost/boost/mpl/aux_/count_args.hpp | 2 +- boost/boost/mpl/aux_/empty_impl.hpp | 2 +- boost/boost/mpl/aux_/fold_impl.hpp | 2 +- boost/boost/mpl/aux_/fold_impl_body.hpp | 2 +- boost/boost/mpl/aux_/full_lambda.hpp | 2 +- boost/boost/mpl/aux_/has_apply.hpp | 2 +- boost/boost/mpl/aux_/has_begin.hpp | 2 +- boost/boost/mpl/aux_/has_rebind.hpp | 2 +- boost/boost/mpl/aux_/has_size.hpp | 2 +- boost/boost/mpl/aux_/has_tag.hpp | 2 +- boost/boost/mpl/aux_/has_type.hpp | 2 +- boost/boost/mpl/aux_/include_preprocessed.hpp | 2 +- boost/boost/mpl/aux_/insert_range_impl.hpp | 2 +- boost/boost/mpl/aux_/inserter_algorithm.hpp | 2 +- boost/boost/mpl/aux_/integral_wrapper.hpp | 2 +- boost/boost/mpl/aux_/is_msvc_eti_arg.hpp | 2 +- boost/boost/mpl/aux_/iter_apply.hpp | 2 +- boost/boost/mpl/aux_/iter_fold_if_impl.hpp | 2 +- boost/boost/mpl/aux_/iter_fold_impl.hpp | 2 +- boost/boost/mpl/aux_/iter_push_front.hpp | 2 +- boost/boost/mpl/aux_/joint_iter.hpp | 2 +- boost/boost/mpl/aux_/lambda_arity_param.hpp | 2 +- boost/boost/mpl/aux_/lambda_no_ctps.hpp | 2 +- boost/boost/mpl/aux_/lambda_spec.hpp | 2 +- boost/boost/mpl/aux_/lambda_support.hpp | 2 +- boost/boost/mpl/aux_/largest_int.hpp | 2 +- boost/boost/mpl/aux_/logical_op.hpp | 2 +- boost/boost/mpl/aux_/msvc_dtw.hpp | 2 +- boost/boost/mpl/aux_/msvc_eti_base.hpp | 2 +- boost/boost/mpl/aux_/msvc_is_class.hpp | 2 +- boost/boost/mpl/aux_/msvc_never_true.hpp | 2 +- boost/boost/mpl/aux_/msvc_type.hpp | 2 +- boost/boost/mpl/aux_/na.hpp | 2 +- boost/boost/mpl/aux_/na_assert.hpp | 2 +- boost/boost/mpl/aux_/na_fwd.hpp | 2 +- boost/boost/mpl/aux_/na_spec.hpp | 2 +- boost/boost/mpl/aux_/nested_type_wknd.hpp | 2 +- boost/boost/mpl/aux_/nttp_decl.hpp | 2 +- boost/boost/mpl/aux_/numeric_cast_utils.hpp | 2 +- boost/boost/mpl/aux_/numeric_op.hpp | 2 +- .../preprocessed/bcc/advance_backward.hpp | 0 .../aux_/preprocessed/bcc/advance_forward.hpp | 0 boost/boost/mpl/aux_/preprocessed/bcc/and.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/apply.hpp | 0 .../mpl/aux_/preprocessed/bcc/apply_fwd.hpp | 0 .../mpl/aux_/preprocessed/bcc/apply_wrap.hpp | 0 boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp | 0 .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/bind.hpp | 0 .../mpl/aux_/preprocessed/bcc/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/bcc/bitand.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/bitor.hpp | 0 .../mpl/aux_/preprocessed/bcc/bitxor.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/deque.hpp | 0 .../mpl/aux_/preprocessed/bcc/divides.hpp | 0 .../mpl/aux_/preprocessed/bcc/equal_to.hpp | 0 .../mpl/aux_/preprocessed/bcc/fold_impl.hpp | 0 .../mpl/aux_/preprocessed/bcc/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/bcc/greater.hpp | 0 .../aux_/preprocessed/bcc/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/bcc/inherit.hpp | 0 .../preprocessed/bcc/iter_fold_if_impl.hpp | 0 .../aux_/preprocessed/bcc/iter_fold_impl.hpp | 0 .../aux_/preprocessed/bcc/lambda_no_ctps.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/less.hpp | 0 .../mpl/aux_/preprocessed/bcc/less_equal.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/list.hpp | 0 .../mpl/aux_/preprocessed/bcc/list_c.hpp | 0 boost/boost/mpl/aux_/preprocessed/bcc/map.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/minus.hpp | 0 .../mpl/aux_/preprocessed/bcc/modulus.hpp | 0 .../aux_/preprocessed/bcc/not_equal_to.hpp | 0 boost/boost/mpl/aux_/preprocessed/bcc/or.hpp | 0 .../aux_/preprocessed/bcc/placeholders.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/plus.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/quote.hpp | 0 .../preprocessed/bcc/reverse_fold_impl.hpp | 0 .../bcc/reverse_iter_fold_impl.hpp | 0 boost/boost/mpl/aux_/preprocessed/bcc/set.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/set_c.hpp | 0 .../mpl/aux_/preprocessed/bcc/shift_left.hpp | 0 .../mpl/aux_/preprocessed/bcc/shift_right.hpp | 0 .../aux_/preprocessed/bcc/template_arity.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc/times.hpp | 0 .../mpl/aux_/preprocessed/bcc/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/bcc/vector.hpp | 0 .../mpl/aux_/preprocessed/bcc/vector_c.hpp | 0 .../preprocessed/bcc551/advance_backward.hpp | 0 .../preprocessed/bcc551/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/bcc551/and.hpp | 0 .../mpl/aux_/preprocessed/bcc551/apply.hpp | 0 .../aux_/preprocessed/bcc551/apply_fwd.hpp | 0 .../aux_/preprocessed/bcc551/apply_wrap.hpp | 0 .../mpl/aux_/preprocessed/bcc551/arg.hpp | 0 .../aux_/preprocessed/bcc551/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/bcc551/bind.hpp | 0 .../mpl/aux_/preprocessed/bcc551/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/bcc551/bitand.hpp | 0 .../mpl/aux_/preprocessed/bcc551/bitor.hpp | 0 .../mpl/aux_/preprocessed/bcc551/bitxor.hpp | 0 .../mpl/aux_/preprocessed/bcc551/deque.hpp | 0 .../mpl/aux_/preprocessed/bcc551/divides.hpp | 0 .../mpl/aux_/preprocessed/bcc551/equal_to.hpp | 0 .../aux_/preprocessed/bcc551/fold_impl.hpp | 0 .../aux_/preprocessed/bcc551/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/bcc551/greater.hpp | 0 .../preprocessed/bcc551/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/bcc551/inherit.hpp | 0 .../preprocessed/bcc551/iter_fold_if_impl.hpp | 0 .../preprocessed/bcc551/iter_fold_impl.hpp | 0 .../preprocessed/bcc551/lambda_no_ctps.hpp | 0 .../mpl/aux_/preprocessed/bcc551/less.hpp | 0 .../aux_/preprocessed/bcc551/less_equal.hpp | 0 .../mpl/aux_/preprocessed/bcc551/list.hpp | 0 .../mpl/aux_/preprocessed/bcc551/list_c.hpp | 0 .../mpl/aux_/preprocessed/bcc551/map.hpp | 0 .../mpl/aux_/preprocessed/bcc551/minus.hpp | 0 .../mpl/aux_/preprocessed/bcc551/modulus.hpp | 0 .../aux_/preprocessed/bcc551/not_equal_to.hpp | 0 .../boost/mpl/aux_/preprocessed/bcc551/or.hpp | 0 .../aux_/preprocessed/bcc551/placeholders.hpp | 0 .../mpl/aux_/preprocessed/bcc551/plus.hpp | 0 .../mpl/aux_/preprocessed/bcc551/quote.hpp | 0 .../preprocessed/bcc551/reverse_fold_impl.hpp | 0 .../bcc551/reverse_iter_fold_impl.hpp | 0 .../mpl/aux_/preprocessed/bcc551/set.hpp | 0 .../mpl/aux_/preprocessed/bcc551/set_c.hpp | 0 .../aux_/preprocessed/bcc551/shift_left.hpp | 0 .../aux_/preprocessed/bcc551/shift_right.hpp | 0 .../preprocessed/bcc551/template_arity.hpp | 0 .../mpl/aux_/preprocessed/bcc551/times.hpp | 0 .../aux_/preprocessed/bcc551/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/bcc551/vector.hpp | 0 .../mpl/aux_/preprocessed/bcc551/vector_c.hpp | 0 .../preprocessed/dmc/advance_backward.hpp | 0 .../aux_/preprocessed/dmc/advance_forward.hpp | 0 boost/boost/mpl/aux_/preprocessed/dmc/and.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/apply.hpp | 0 .../mpl/aux_/preprocessed/dmc/apply_fwd.hpp | 0 .../mpl/aux_/preprocessed/dmc/apply_wrap.hpp | 0 boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp | 0 .../mpl/aux_/preprocessed/dmc/basic_bind.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/bind.hpp | 0 .../mpl/aux_/preprocessed/dmc/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/dmc/bitand.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/bitor.hpp | 0 .../mpl/aux_/preprocessed/dmc/bitxor.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/deque.hpp | 0 .../mpl/aux_/preprocessed/dmc/divides.hpp | 0 .../mpl/aux_/preprocessed/dmc/equal_to.hpp | 0 .../mpl/aux_/preprocessed/dmc/fold_impl.hpp | 0 .../mpl/aux_/preprocessed/dmc/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/dmc/greater.hpp | 0 .../aux_/preprocessed/dmc/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/dmc/inherit.hpp | 0 .../preprocessed/dmc/iter_fold_if_impl.hpp | 0 .../aux_/preprocessed/dmc/iter_fold_impl.hpp | 0 .../aux_/preprocessed/dmc/lambda_no_ctps.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/less.hpp | 0 .../mpl/aux_/preprocessed/dmc/less_equal.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/list.hpp | 0 .../mpl/aux_/preprocessed/dmc/list_c.hpp | 0 boost/boost/mpl/aux_/preprocessed/dmc/map.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/minus.hpp | 0 .../mpl/aux_/preprocessed/dmc/modulus.hpp | 0 .../aux_/preprocessed/dmc/not_equal_to.hpp | 0 boost/boost/mpl/aux_/preprocessed/dmc/or.hpp | 0 .../aux_/preprocessed/dmc/placeholders.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/plus.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/quote.hpp | 0 .../preprocessed/dmc/reverse_fold_impl.hpp | 0 .../dmc/reverse_iter_fold_impl.hpp | 0 boost/boost/mpl/aux_/preprocessed/dmc/set.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/set_c.hpp | 0 .../mpl/aux_/preprocessed/dmc/shift_left.hpp | 0 .../mpl/aux_/preprocessed/dmc/shift_right.hpp | 0 .../aux_/preprocessed/dmc/template_arity.hpp | 0 .../boost/mpl/aux_/preprocessed/dmc/times.hpp | 0 .../mpl/aux_/preprocessed/dmc/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/dmc/vector.hpp | 0 .../mpl/aux_/preprocessed/dmc/vector_c.hpp | 0 .../preprocessed/gcc/advance_backward.hpp | 0 .../aux_/preprocessed/gcc/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/gcc/bitand.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/bitor.hpp | 0 .../mpl/aux_/preprocessed/gcc/bitxor.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/deque.hpp | 0 .../mpl/aux_/preprocessed/gcc/divides.hpp | 0 .../mpl/aux_/preprocessed/gcc/equal_to.hpp | 0 .../mpl/aux_/preprocessed/gcc/fold_impl.hpp | 0 .../mpl/aux_/preprocessed/gcc/greater.hpp | 0 .../aux_/preprocessed/gcc/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/gcc/inherit.hpp | 0 .../preprocessed/gcc/iter_fold_if_impl.hpp | 0 .../aux_/preprocessed/gcc/iter_fold_impl.hpp | 0 .../aux_/preprocessed/gcc/lambda_no_ctps.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/less.hpp | 0 .../mpl/aux_/preprocessed/gcc/less_equal.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/list.hpp | 0 .../mpl/aux_/preprocessed/gcc/list_c.hpp | 0 boost/boost/mpl/aux_/preprocessed/gcc/map.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/minus.hpp | 0 .../mpl/aux_/preprocessed/gcc/modulus.hpp | 0 .../aux_/preprocessed/gcc/not_equal_to.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/plus.hpp | 0 .../preprocessed/gcc/reverse_fold_impl.hpp | 0 .../gcc/reverse_iter_fold_impl.hpp | 0 boost/boost/mpl/aux_/preprocessed/gcc/set.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/set_c.hpp | 0 .../mpl/aux_/preprocessed/gcc/shift_left.hpp | 0 .../mpl/aux_/preprocessed/gcc/shift_right.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/times.hpp | 0 .../mpl/aux_/preprocessed/gcc/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/gcc/vector.hpp | 0 .../mpl/aux_/preprocessed/gcc/vector_c.hpp | 0 .../preprocessed/msvc60/advance_backward.hpp | 0 .../preprocessed/msvc60/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/msvc60/and.hpp | 0 .../mpl/aux_/preprocessed/msvc60/apply.hpp | 0 .../aux_/preprocessed/msvc60/apply_fwd.hpp | 0 .../aux_/preprocessed/msvc60/apply_wrap.hpp | 0 .../mpl/aux_/preprocessed/msvc60/arg.hpp | 0 .../aux_/preprocessed/msvc60/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/msvc60/bind.hpp | 0 .../mpl/aux_/preprocessed/msvc60/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/msvc60/bitand.hpp | 0 .../mpl/aux_/preprocessed/msvc60/bitor.hpp | 0 .../mpl/aux_/preprocessed/msvc60/bitxor.hpp | 0 .../mpl/aux_/preprocessed/msvc60/deque.hpp | 0 .../mpl/aux_/preprocessed/msvc60/divides.hpp | 0 .../mpl/aux_/preprocessed/msvc60/equal_to.hpp | 0 .../aux_/preprocessed/msvc60/fold_impl.hpp | 0 .../aux_/preprocessed/msvc60/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/msvc60/greater.hpp | 0 .../preprocessed/msvc60/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/msvc60/inherit.hpp | 0 .../preprocessed/msvc60/iter_fold_if_impl.hpp | 0 .../preprocessed/msvc60/iter_fold_impl.hpp | 0 .../preprocessed/msvc60/lambda_no_ctps.hpp | 0 .../mpl/aux_/preprocessed/msvc60/less.hpp | 0 .../aux_/preprocessed/msvc60/less_equal.hpp | 0 .../mpl/aux_/preprocessed/msvc60/list.hpp | 0 .../mpl/aux_/preprocessed/msvc60/list_c.hpp | 0 .../mpl/aux_/preprocessed/msvc60/map.hpp | 0 .../mpl/aux_/preprocessed/msvc60/minus.hpp | 0 .../mpl/aux_/preprocessed/msvc60/modulus.hpp | 0 .../aux_/preprocessed/msvc60/not_equal_to.hpp | 0 .../boost/mpl/aux_/preprocessed/msvc60/or.hpp | 0 .../aux_/preprocessed/msvc60/placeholders.hpp | 0 .../mpl/aux_/preprocessed/msvc60/plus.hpp | 0 .../mpl/aux_/preprocessed/msvc60/quote.hpp | 0 .../preprocessed/msvc60/reverse_fold_impl.hpp | 0 .../msvc60/reverse_iter_fold_impl.hpp | 0 .../mpl/aux_/preprocessed/msvc60/set.hpp | 0 .../mpl/aux_/preprocessed/msvc60/set_c.hpp | 0 .../aux_/preprocessed/msvc60/shift_left.hpp | 0 .../aux_/preprocessed/msvc60/shift_right.hpp | 0 .../preprocessed/msvc60/template_arity.hpp | 0 .../mpl/aux_/preprocessed/msvc60/times.hpp | 0 .../aux_/preprocessed/msvc60/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/msvc60/vector.hpp | 0 .../mpl/aux_/preprocessed/msvc60/vector_c.hpp | 0 .../preprocessed/msvc70/advance_backward.hpp | 0 .../preprocessed/msvc70/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/msvc70/and.hpp | 0 .../mpl/aux_/preprocessed/msvc70/apply.hpp | 0 .../aux_/preprocessed/msvc70/apply_fwd.hpp | 0 .../aux_/preprocessed/msvc70/apply_wrap.hpp | 0 .../mpl/aux_/preprocessed/msvc70/arg.hpp | 0 .../aux_/preprocessed/msvc70/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/msvc70/bind.hpp | 0 .../mpl/aux_/preprocessed/msvc70/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/msvc70/bitand.hpp | 0 .../mpl/aux_/preprocessed/msvc70/bitor.hpp | 0 .../mpl/aux_/preprocessed/msvc70/bitxor.hpp | 0 .../mpl/aux_/preprocessed/msvc70/deque.hpp | 0 .../mpl/aux_/preprocessed/msvc70/divides.hpp | 0 .../mpl/aux_/preprocessed/msvc70/equal_to.hpp | 0 .../aux_/preprocessed/msvc70/fold_impl.hpp | 0 .../aux_/preprocessed/msvc70/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/msvc70/greater.hpp | 0 .../preprocessed/msvc70/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/msvc70/inherit.hpp | 0 .../preprocessed/msvc70/iter_fold_if_impl.hpp | 0 .../preprocessed/msvc70/iter_fold_impl.hpp | 0 .../preprocessed/msvc70/lambda_no_ctps.hpp | 0 .../mpl/aux_/preprocessed/msvc70/less.hpp | 0 .../aux_/preprocessed/msvc70/less_equal.hpp | 0 .../mpl/aux_/preprocessed/msvc70/list.hpp | 0 .../mpl/aux_/preprocessed/msvc70/list_c.hpp | 0 .../mpl/aux_/preprocessed/msvc70/map.hpp | 0 .../mpl/aux_/preprocessed/msvc70/minus.hpp | 0 .../mpl/aux_/preprocessed/msvc70/modulus.hpp | 0 .../aux_/preprocessed/msvc70/not_equal_to.hpp | 0 .../boost/mpl/aux_/preprocessed/msvc70/or.hpp | 0 .../aux_/preprocessed/msvc70/placeholders.hpp | 0 .../mpl/aux_/preprocessed/msvc70/plus.hpp | 0 .../mpl/aux_/preprocessed/msvc70/quote.hpp | 0 .../preprocessed/msvc70/reverse_fold_impl.hpp | 0 .../msvc70/reverse_iter_fold_impl.hpp | 0 .../mpl/aux_/preprocessed/msvc70/set.hpp | 0 .../mpl/aux_/preprocessed/msvc70/set_c.hpp | 0 .../aux_/preprocessed/msvc70/shift_left.hpp | 0 .../aux_/preprocessed/msvc70/shift_right.hpp | 0 .../preprocessed/msvc70/template_arity.hpp | 0 .../mpl/aux_/preprocessed/msvc70/times.hpp | 0 .../aux_/preprocessed/msvc70/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/msvc70/vector.hpp | 0 .../mpl/aux_/preprocessed/msvc70/vector_c.hpp | 0 .../preprocessed/mwcw/advance_backward.hpp | 0 .../preprocessed/mwcw/advance_forward.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/and.hpp | 0 .../mpl/aux_/preprocessed/mwcw/apply.hpp | 0 .../mpl/aux_/preprocessed/mwcw/apply_fwd.hpp | 0 .../mpl/aux_/preprocessed/mwcw/apply_wrap.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/arg.hpp | 0 .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 0 .../mpl/aux_/preprocessed/mwcw/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/mwcw/bitand.hpp | 0 .../mpl/aux_/preprocessed/mwcw/bitor.hpp | 0 .../mpl/aux_/preprocessed/mwcw/bitxor.hpp | 0 .../mpl/aux_/preprocessed/mwcw/deque.hpp | 0 .../mpl/aux_/preprocessed/mwcw/divides.hpp | 0 .../mpl/aux_/preprocessed/mwcw/equal_to.hpp | 0 .../mpl/aux_/preprocessed/mwcw/fold_impl.hpp | 0 .../aux_/preprocessed/mwcw/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/mwcw/greater.hpp | 0 .../aux_/preprocessed/mwcw/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/mwcw/inherit.hpp | 0 .../preprocessed/mwcw/iter_fold_if_impl.hpp | 0 .../aux_/preprocessed/mwcw/iter_fold_impl.hpp | 0 .../aux_/preprocessed/mwcw/lambda_no_ctps.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/less.hpp | 0 .../mpl/aux_/preprocessed/mwcw/less_equal.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/list.hpp | 0 .../mpl/aux_/preprocessed/mwcw/list_c.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/map.hpp | 0 .../mpl/aux_/preprocessed/mwcw/minus.hpp | 0 .../mpl/aux_/preprocessed/mwcw/modulus.hpp | 0 .../aux_/preprocessed/mwcw/not_equal_to.hpp | 0 boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp | 0 .../aux_/preprocessed/mwcw/placeholders.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/plus.hpp | 0 .../mpl/aux_/preprocessed/mwcw/quote.hpp | 0 .../preprocessed/mwcw/reverse_fold_impl.hpp | 0 .../mwcw/reverse_iter_fold_impl.hpp | 0 .../boost/mpl/aux_/preprocessed/mwcw/set.hpp | 0 .../mpl/aux_/preprocessed/mwcw/set_c.hpp | 0 .../mpl/aux_/preprocessed/mwcw/shift_left.hpp | 0 .../aux_/preprocessed/mwcw/shift_right.hpp | 0 .../aux_/preprocessed/mwcw/template_arity.hpp | 0 .../mpl/aux_/preprocessed/mwcw/times.hpp | 0 .../aux_/preprocessed/mwcw/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/mwcw/vector.hpp | 0 .../mpl/aux_/preprocessed/mwcw/vector_c.hpp | 0 .../preprocessed/no_ctps/advance_backward.hpp | 0 .../preprocessed/no_ctps/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/and.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/apply.hpp | 0 .../aux_/preprocessed/no_ctps/apply_fwd.hpp | 0 .../aux_/preprocessed/no_ctps/apply_wrap.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/arg.hpp | 0 .../aux_/preprocessed/no_ctps/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 0 .../aux_/preprocessed/no_ctps/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/bitand.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/bitor.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/bitxor.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/deque.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/divides.hpp | 0 .../aux_/preprocessed/no_ctps/equal_to.hpp | 0 .../aux_/preprocessed/no_ctps/fold_impl.hpp | 0 .../aux_/preprocessed/no_ctps/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/greater.hpp | 0 .../preprocessed/no_ctps/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/inherit.hpp | 0 .../no_ctps/iter_fold_if_impl.hpp | 0 .../preprocessed/no_ctps/iter_fold_impl.hpp | 0 .../preprocessed/no_ctps/lambda_no_ctps.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/less.hpp | 0 .../aux_/preprocessed/no_ctps/less_equal.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/list.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/list_c.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/map.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/minus.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/modulus.hpp | 0 .../preprocessed/no_ctps/not_equal_to.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/or.hpp | 0 .../preprocessed/no_ctps/placeholders.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/plus.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/quote.hpp | 0 .../no_ctps/reverse_fold_impl.hpp | 0 .../no_ctps/reverse_iter_fold_impl.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/set.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/set_c.hpp | 0 .../aux_/preprocessed/no_ctps/shift_left.hpp | 0 .../aux_/preprocessed/no_ctps/shift_right.hpp | 0 .../preprocessed/no_ctps/template_arity.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/times.hpp | 0 .../aux_/preprocessed/no_ctps/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/no_ctps/vector.hpp | 0 .../aux_/preprocessed/no_ctps/vector_c.hpp | 0 .../preprocessed/no_ttp/advance_backward.hpp | 0 .../preprocessed/no_ttp/advance_forward.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/and.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/apply.hpp | 0 .../aux_/preprocessed/no_ttp/apply_fwd.hpp | 0 .../aux_/preprocessed/no_ttp/apply_wrap.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/arg.hpp | 0 .../aux_/preprocessed/no_ttp/basic_bind.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/bind.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/bitand.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/bitor.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/bitxor.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/deque.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/divides.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/equal_to.hpp | 0 .../aux_/preprocessed/no_ttp/fold_impl.hpp | 0 .../aux_/preprocessed/no_ttp/full_lambda.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/greater.hpp | 0 .../preprocessed/no_ttp/greater_equal.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/inherit.hpp | 0 .../preprocessed/no_ttp/iter_fold_if_impl.hpp | 0 .../preprocessed/no_ttp/iter_fold_impl.hpp | 0 .../preprocessed/no_ttp/lambda_no_ctps.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/less.hpp | 0 .../aux_/preprocessed/no_ttp/less_equal.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/list.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/list_c.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/map.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/minus.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/modulus.hpp | 0 .../aux_/preprocessed/no_ttp/not_equal_to.hpp | 0 .../boost/mpl/aux_/preprocessed/no_ttp/or.hpp | 0 .../aux_/preprocessed/no_ttp/placeholders.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/plus.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/quote.hpp | 0 .../preprocessed/no_ttp/reverse_fold_impl.hpp | 0 .../no_ttp/reverse_iter_fold_impl.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/set.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/set_c.hpp | 0 .../aux_/preprocessed/no_ttp/shift_left.hpp | 0 .../aux_/preprocessed/no_ttp/shift_right.hpp | 0 .../preprocessed/no_ttp/template_arity.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/times.hpp | 0 .../aux_/preprocessed/no_ttp/unpack_args.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/vector.hpp | 0 .../mpl/aux_/preprocessed/no_ttp/vector_c.hpp | 0 boost/boost/mpl/aux_/preprocessor/add.hpp | 2 +- .../mpl/aux_/preprocessor/def_params_tail.hpp | 2 +- .../mpl/aux_/preprocessor/default_params.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/enum.hpp | 2 +- .../mpl/aux_/preprocessor/ext_params.hpp | 2 +- .../mpl/aux_/preprocessor/filter_params.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/params.hpp | 2 +- .../aux_/preprocessor/partial_spec_params.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/range.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/repeat.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/sub.hpp | 2 +- boost/boost/mpl/aux_/preprocessor/tuple.hpp | 2 +- boost/boost/mpl/aux_/push_back_impl.hpp | 2 +- boost/boost/mpl/aux_/push_front_impl.hpp | 2 +- boost/boost/mpl/aux_/reverse_fold_impl.hpp | 2 +- .../boost/mpl/aux_/reverse_fold_impl_body.hpp | 2 +- boost/boost/mpl/aux_/sequence_wrapper.hpp | 2 +- boost/boost/mpl/aux_/size_impl.hpp | 2 +- boost/boost/mpl/aux_/static_cast.hpp | 2 +- boost/boost/mpl/aux_/template_arity.hpp | 2 +- boost/boost/mpl/aux_/template_arity_fwd.hpp | 2 +- boost/boost/mpl/aux_/traits_lambda_spec.hpp | 2 +- boost/boost/mpl/aux_/type_wrapper.hpp | 2 +- boost/boost/mpl/aux_/value_wknd.hpp | 2 +- boost/boost/mpl/aux_/yes_no.hpp | 2 +- boost/boost/mpl/back_fwd.hpp | 2 +- boost/boost/mpl/back_inserter.hpp | 2 +- boost/boost/mpl/begin_end.hpp | 2 +- boost/boost/mpl/begin_end_fwd.hpp | 2 +- boost/boost/mpl/bind.hpp | 2 +- boost/boost/mpl/bind_fwd.hpp | 2 +- boost/boost/mpl/bool.hpp | 2 +- boost/boost/mpl/bool_fwd.hpp | 2 +- boost/boost/mpl/clear.hpp | 2 +- boost/boost/mpl/clear_fwd.hpp | 2 +- boost/boost/mpl/comparison.hpp | 2 +- boost/boost/mpl/contains.hpp | 2 +- boost/boost/mpl/contains_fwd.hpp | 2 +- boost/boost/mpl/copy.hpp | 2 +- boost/boost/mpl/deref.hpp | 2 +- boost/boost/mpl/distance.hpp | 2 +- boost/boost/mpl/distance_fwd.hpp | 2 +- boost/boost/mpl/empty.hpp | 2 +- boost/boost/mpl/empty_fwd.hpp | 2 +- boost/boost/mpl/equal_to.hpp | 2 +- boost/boost/mpl/eval_if.hpp | 2 +- boost/boost/mpl/find.hpp | 2 +- boost/boost/mpl/find_if.hpp | 2 +- boost/boost/mpl/fold.hpp | 2 +- boost/boost/mpl/front_fwd.hpp | 2 +- boost/boost/mpl/front_inserter.hpp | 2 +- boost/boost/mpl/greater.hpp | 2 +- boost/boost/mpl/greater_equal.hpp | 2 +- boost/boost/mpl/has_xxx.hpp | 2 +- boost/boost/mpl/identity.hpp | 2 +- boost/boost/mpl/if.hpp | 2 +- boost/boost/mpl/insert_range.hpp | 2 +- boost/boost/mpl/insert_range_fwd.hpp | 2 +- boost/boost/mpl/inserter.hpp | 2 +- boost/boost/mpl/int.hpp | 2 +- boost/boost/mpl/int_fwd.hpp | 2 +- boost/boost/mpl/integral_c.hpp | 2 +- boost/boost/mpl/integral_c_fwd.hpp | 2 +- boost/boost/mpl/integral_c_tag.hpp | 2 +- boost/boost/mpl/is_placeholder.hpp | 2 +- boost/boost/mpl/iter_fold.hpp | 2 +- boost/boost/mpl/iter_fold_if.hpp | 2 +- boost/boost/mpl/iterator_range.hpp | 2 +- boost/boost/mpl/iterator_tags.hpp | 2 +- boost/boost/mpl/joint_view.hpp | 2 +- boost/boost/mpl/lambda.hpp | 2 +- boost/boost/mpl/lambda_fwd.hpp | 2 +- boost/boost/mpl/less.hpp | 2 +- boost/boost/mpl/less_equal.hpp | 2 +- boost/boost/mpl/limits/arity.hpp | 2 +- boost/boost/mpl/limits/list.hpp | 2 +- boost/boost/mpl/limits/unrolling.hpp | 2 +- boost/boost/mpl/limits/vector.hpp | 2 +- boost/boost/mpl/list.hpp | 2 +- boost/boost/mpl/list/aux_/O1_size.hpp | 2 +- boost/boost/mpl/list/aux_/begin_end.hpp | 2 +- boost/boost/mpl/list/aux_/clear.hpp | 2 +- boost/boost/mpl/list/aux_/empty.hpp | 2 +- boost/boost/mpl/list/aux_/front.hpp | 2 +- .../mpl/list/aux_/include_preprocessed.hpp | 2 +- boost/boost/mpl/list/aux_/item.hpp | 2 +- boost/boost/mpl/list/aux_/iterator.hpp | 2 +- boost/boost/mpl/list/aux_/numbered.hpp | 2 +- boost/boost/mpl/list/aux_/numbered_c.hpp | 2 +- boost/boost/mpl/list/aux_/pop_front.hpp | 2 +- boost/boost/mpl/list/aux_/push_back.hpp | 2 +- boost/boost/mpl/list/aux_/push_front.hpp | 2 +- boost/boost/mpl/list/aux_/size.hpp | 2 +- boost/boost/mpl/list/aux_/tag.hpp | 2 +- boost/boost/mpl/list/list0.hpp | 2 +- boost/boost/mpl/list/list0_c.hpp | 2 +- boost/boost/mpl/list/list10.hpp | 2 +- boost/boost/mpl/list/list10_c.hpp | 2 +- boost/boost/mpl/list/list20.hpp | 2 +- boost/boost/mpl/list/list20_c.hpp | 2 +- boost/boost/mpl/list/list30.hpp | 2 +- boost/boost/mpl/list/list30_c.hpp | 2 +- boost/boost/mpl/list/list40.hpp | 2 +- boost/boost/mpl/list/list40_c.hpp | 2 +- boost/boost/mpl/list/list50.hpp | 2 +- boost/boost/mpl/list/list50_c.hpp | 2 +- boost/boost/mpl/logical.hpp | 2 +- boost/boost/mpl/long.hpp | 2 +- boost/boost/mpl/long_fwd.hpp | 2 +- boost/boost/mpl/minus.hpp | 2 +- boost/boost/mpl/multiplies.hpp | 2 +- boost/boost/mpl/negate.hpp | 2 +- boost/boost/mpl/next.hpp | 2 +- boost/boost/mpl/next_prior.hpp | 2 +- boost/boost/mpl/not.hpp | 2 +- boost/boost/mpl/not_equal_to.hpp | 2 +- boost/boost/mpl/numeric_cast.hpp | 2 +- boost/boost/mpl/or.hpp | 2 +- boost/boost/mpl/pair.hpp | 2 +- boost/boost/mpl/placeholders.hpp | 2 +- boost/boost/mpl/plus.hpp | 2 +- boost/boost/mpl/pop_back_fwd.hpp | 2 +- boost/boost/mpl/pop_front_fwd.hpp | 2 +- boost/boost/mpl/prior.hpp | 2 +- boost/boost/mpl/protect.hpp | 2 +- boost/boost/mpl/push_back.hpp | 2 +- boost/boost/mpl/push_back_fwd.hpp | 2 +- boost/boost/mpl/push_front.hpp | 2 +- boost/boost/mpl/push_front_fwd.hpp | 2 +- boost/boost/mpl/quote.hpp | 2 +- boost/boost/mpl/remove_if.hpp | 2 +- boost/boost/mpl/reverse_fold.hpp | 2 +- boost/boost/mpl/same_as.hpp | 2 +- boost/boost/mpl/sequence_tag.hpp | 2 +- boost/boost/mpl/sequence_tag_fwd.hpp | 2 +- boost/boost/mpl/size.hpp | 2 +- boost/boost/mpl/size_fwd.hpp | 2 +- boost/boost/mpl/size_t.hpp | 2 +- boost/boost/mpl/size_t_fwd.hpp | 2 +- boost/boost/mpl/tag.hpp | 2 +- boost/boost/mpl/times.hpp | 2 +- boost/boost/mpl/vector.hpp | 2 +- boost/boost/mpl/vector/aux_/O1_size.hpp | 2 +- boost/boost/mpl/vector/aux_/at.hpp | 2 +- boost/boost/mpl/vector/aux_/back.hpp | 2 +- boost/boost/mpl/vector/aux_/begin_end.hpp | 2 +- boost/boost/mpl/vector/aux_/clear.hpp | 2 +- boost/boost/mpl/vector/aux_/empty.hpp | 2 +- boost/boost/mpl/vector/aux_/front.hpp | 2 +- .../mpl/vector/aux_/include_preprocessed.hpp | 2 +- boost/boost/mpl/vector/aux_/item.hpp | 2 +- boost/boost/mpl/vector/aux_/iterator.hpp | 2 +- boost/boost/mpl/vector/aux_/numbered.hpp | 2 +- boost/boost/mpl/vector/aux_/numbered_c.hpp | 2 +- boost/boost/mpl/vector/aux_/pop_back.hpp | 2 +- boost/boost/mpl/vector/aux_/pop_front.hpp | 2 +- .../aux_/preprocessed/no_ctps/vector10.hpp | 0 .../aux_/preprocessed/no_ctps/vector10_c.hpp | 0 .../aux_/preprocessed/no_ctps/vector20.hpp | 0 .../aux_/preprocessed/no_ctps/vector20_c.hpp | 0 .../aux_/preprocessed/no_ctps/vector30.hpp | 0 .../aux_/preprocessed/no_ctps/vector30_c.hpp | 0 .../aux_/preprocessed/no_ctps/vector40.hpp | 0 .../aux_/preprocessed/no_ctps/vector40_c.hpp | 0 .../aux_/preprocessed/no_ctps/vector50.hpp | 0 .../aux_/preprocessed/no_ctps/vector50_c.hpp | 0 .../aux_/preprocessed/plain/vector10.hpp | 0 .../aux_/preprocessed/plain/vector10_c.hpp | 0 .../aux_/preprocessed/plain/vector20.hpp | 0 .../aux_/preprocessed/plain/vector20_c.hpp | 0 .../aux_/preprocessed/plain/vector30.hpp | 0 .../aux_/preprocessed/plain/vector30_c.hpp | 0 .../aux_/preprocessed/plain/vector40.hpp | 0 .../aux_/preprocessed/plain/vector40_c.hpp | 0 .../aux_/preprocessed/plain/vector50.hpp | 0 .../aux_/preprocessed/plain/vector50_c.hpp | 0 .../preprocessed/typeof_based/vector10.hpp | 0 .../preprocessed/typeof_based/vector10_c.hpp | 0 .../preprocessed/typeof_based/vector20.hpp | 0 .../preprocessed/typeof_based/vector20_c.hpp | 0 .../preprocessed/typeof_based/vector30.hpp | 0 .../preprocessed/typeof_based/vector30_c.hpp | 0 .../preprocessed/typeof_based/vector40.hpp | 0 .../preprocessed/typeof_based/vector40_c.hpp | 0 .../preprocessed/typeof_based/vector50.hpp | 0 .../preprocessed/typeof_based/vector50_c.hpp | 0 boost/boost/mpl/vector/aux_/push_back.hpp | 2 +- boost/boost/mpl/vector/aux_/push_front.hpp | 2 +- boost/boost/mpl/vector/aux_/size.hpp | 2 +- boost/boost/mpl/vector/aux_/tag.hpp | 2 +- boost/boost/mpl/vector/aux_/vector0.hpp | 2 +- boost/boost/mpl/vector/vector0.hpp | 2 +- boost/boost/mpl/vector/vector0_c.hpp | 2 +- boost/boost/mpl/vector/vector10.hpp | 2 +- boost/boost/mpl/vector/vector10_c.hpp | 2 +- boost/boost/mpl/vector/vector20.hpp | 2 +- boost/boost/mpl/vector/vector20_c.hpp | 2 +- boost/boost/mpl/vector/vector30.hpp | 2 +- boost/boost/mpl/vector/vector30_c.hpp | 2 +- boost/boost/mpl/vector/vector40.hpp | 2 +- boost/boost/mpl/vector/vector40_c.hpp | 2 +- boost/boost/mpl/vector/vector50.hpp | 2 +- boost/boost/mpl/vector/vector50_c.hpp | 2 +- boost/boost/mpl/void.hpp | 2 +- boost/boost/mpl/void_fwd.hpp | 2 +- boost/boost/none.hpp | 0 boost/boost/none_t.hpp | 0 .../numeric/conversion/converter_policies.hpp | 8 + boost/boost/optional/optional.hpp | 4 +- boost/boost/range/algorithm/equal.hpp | 198 ++ boost/boost/range/begin.hpp | 143 ++ boost/boost/range/concepts.hpp | 366 ++++ boost/boost/range/config.hpp | 54 + boost/boost/range/const_iterator.hpp | 67 + boost/boost/range/detail/begin.hpp | 94 + boost/boost/range/detail/common.hpp | 117 ++ boost/boost/range/detail/const_iterator.hpp | 71 + boost/boost/range/detail/end.hpp | 101 + .../range/detail/extract_optional_type.hpp | 52 + .../range/detail/implementation_help.hpp | 103 + boost/boost/range/detail/iterator.hpp | 78 + boost/boost/range/detail/misc_concept.hpp | 33 + boost/boost/range/detail/remove_extent.hpp | 157 ++ boost/boost/range/detail/safe_bool.hpp | 72 + boost/boost/range/detail/sfinae.hpp | 77 + boost/boost/range/detail/size_type.hpp | 55 + boost/boost/range/detail/vc6/end.hpp | 170 ++ boost/boost/range/difference_type.hpp | 29 + boost/boost/range/distance.hpp | 34 + boost/boost/range/empty.hpp | 34 + boost/boost/range/end.hpp | 136 ++ boost/boost/range/functions.hpp | 27 + boost/boost/range/iterator.hpp | 72 + boost/boost/range/iterator_range_core.hpp | 650 +++++++ boost/boost/range/mutable_iterator.hpp | 67 + boost/boost/range/rbegin.hpp | 65 + boost/boost/range/rend.hpp | 65 + boost/boost/range/result_iterator.hpp | 33 + boost/boost/range/reverse_iterator.hpp | 40 + boost/boost/range/size.hpp | 52 + boost/boost/range/size_type.hpp | 89 + boost/boost/range/value_type.hpp | 34 + boost/boost/regex/config.hpp | 5 +- boost/boost/regex/pending/object_cache.hpp | 2 +- .../boost/regex/pending/unicode_iterator.hpp | 24 +- boost/boost/regex/v4/basic_regex.hpp | 9 +- boost/boost/regex/v4/basic_regex_creator.hpp | 65 +- boost/boost/regex/v4/basic_regex_parser.hpp | 29 +- boost/boost/regex/v4/cpp_regex_traits.hpp | 5 +- boost/boost/regex/v4/instances.hpp | 7 +- boost/boost/regex/v4/match_results.hpp | 5 +- boost/boost/regex/v4/perl_matcher.hpp | 5 +- .../regex/v4/perl_matcher_non_recursive.hpp | 11 +- boost/boost/regex/v4/regex_format.hpp | 6 + boost/boost/regex/v4/regex_iterator.hpp | 2 +- boost/boost/signals/connection.hpp | 2 +- boost/boost/signals/detail/named_slot_map.hpp | 2 +- .../boost/smart_ptr/allocate_shared_array.hpp | 250 +++ .../detail/allocate_array_helper.hpp | 169 ++ .../boost/smart_ptr/detail/array_deleter.hpp | 124 ++ boost/boost/smart_ptr/detail/array_traits.hpp | 53 + .../boost/smart_ptr/detail/array_utility.hpp | 178 ++ .../smart_ptr/detail/make_array_helper.hpp | 157 ++ .../boost/smart_ptr/detail/operator_bool.hpp | 25 +- boost/boost/smart_ptr/detail/shared_count.hpp | 77 +- .../boost/smart_ptr/detail/sp_convertible.hpp | 15 + .../smart_ptr/detail/sp_counted_base.hpp | 18 +- .../detail/sp_counted_base_acc_ia64.hpp | 1 + .../smart_ptr/detail/sp_counted_base_aix.hpp | 1 + .../detail/sp_counted_base_cw_ppc.hpp | 1 + .../detail/sp_counted_base_gcc_ia64.hpp | 1 + .../detail/sp_counted_base_gcc_mips.hpp | 1 + .../detail/sp_counted_base_gcc_ppc.hpp | 1 + .../detail/sp_counted_base_gcc_sparc.hpp | 1 + .../detail/sp_counted_base_gcc_x86.hpp | 1 + .../smart_ptr/detail/sp_counted_base_nt.hpp | 1 + .../smart_ptr/detail/sp_counted_base_pt.hpp | 1 + .../detail/sp_counted_base_snc_ps3.hpp | 162 ++ .../smart_ptr/detail/sp_counted_base_spin.hpp | 1 + .../smart_ptr/detail/sp_counted_base_sync.hpp | 1 + .../detail/sp_counted_base_vacpp_ppc.hpp | 151 ++ .../smart_ptr/detail/sp_counted_base_w32.hpp | 1 + .../smart_ptr/detail/sp_counted_impl.hpp | 15 + boost/boost/smart_ptr/detail/sp_forward.hpp | 39 + boost/boost/smart_ptr/detail/sp_has_sync.hpp | 22 +- boost/boost/smart_ptr/detail/sp_if_array.hpp | 31 + boost/boost/smart_ptr/detail/sp_nullptr_t.hpp | 45 + .../smart_ptr/detail/spinlock_gcc_arm.hpp | 24 +- .../smart_ptr/enable_shared_from_this.hpp | 8 +- boost/boost/smart_ptr/intrusive_ptr.hpp | 39 +- boost/boost/smart_ptr/make_shared.hpp | 969 +--------- boost/boost/smart_ptr/make_shared_array.hpp | 247 +++ boost/boost/smart_ptr/make_shared_object.hpp | 1028 ++++++++++ boost/boost/smart_ptr/scoped_array.hpp | 39 +- boost/boost/smart_ptr/scoped_ptr.hpp | 36 +- boost/boost/smart_ptr/shared_array.hpp | 155 +- boost/boost/smart_ptr/shared_ptr.hpp | 598 ++++-- boost/boost/smart_ptr/weak_ptr.hpp | 77 +- boost/boost/static_assert.hpp | 6 +- boost/boost/swap.hpp | 12 + boost/boost/throw_exception.hpp | 17 +- .../type_traits/add_lvalue_reference.hpp | 2 +- boost/boost/type_traits/add_reference.hpp | 2 +- .../type_traits/add_rvalue_reference.hpp | 8 +- boost/boost/type_traits/common_type.hpp | 22 +- boost/boost/type_traits/config.hpp | 2 +- boost/boost/type_traits/decay.hpp | 0 .../type_traits/detail/bool_trait_def.hpp | 2 +- .../type_traits/detail/bool_trait_undef.hpp | 2 +- .../type_traits/detail/common_type_imp.hpp | 2 +- .../detail/is_function_ptr_tester.hpp | 2 +- .../type_traits/detail/size_t_trait_def.hpp | 2 +- .../type_traits/detail/size_t_trait_undef.hpp | 2 +- .../type_traits/detail/type_trait_def.hpp | 2 +- .../type_traits/detail/type_trait_undef.hpp | 2 +- .../type_traits/floating_point_promotion.hpp | 0 .../boost/type_traits/integral_promotion.hpp | 0 boost/boost/type_traits/intrinsics.hpp | 14 +- boost/boost/type_traits/is_abstract.hpp | 2 +- boost/boost/type_traits/is_array.hpp | 2 +- boost/boost/type_traits/is_complex.hpp | 0 boost/boost/type_traits/is_const.hpp | 2 +- boost/boost/type_traits/is_convertible.hpp | 95 +- boost/boost/type_traits/is_function.hpp | 7 +- boost/boost/type_traits/is_integral.hpp | 7 +- .../boost/type_traits/is_rvalue_reference.hpp | 2 +- .../boost/type_traits/is_virtual_base_of.hpp | 2 +- boost/boost/type_traits/is_volatile.hpp | 2 +- boost/boost/type_traits/make_signed.hpp | 16 + boost/boost/type_traits/make_unsigned.hpp | 16 + .../type_traits/msvc/remove_all_extents.hpp | 0 .../boost/type_traits/msvc/remove_bounds.hpp | 0 boost/boost/type_traits/msvc/remove_const.hpp | 0 boost/boost/type_traits/msvc/remove_cv.hpp | 0 .../boost/type_traits/msvc/remove_extent.hpp | 0 .../boost/type_traits/msvc/remove_pointer.hpp | 0 .../type_traits/msvc/remove_reference.hpp | 0 .../type_traits/msvc/remove_volatile.hpp | 0 boost/boost/type_traits/msvc/typeof.hpp | 0 boost/boost/type_traits/promote.hpp | 0 boost/boost/type_traits/remove_const.hpp | 2 +- boost/boost/type_traits/remove_cv.hpp | 2 +- boost/boost/type_traits/remove_reference.hpp | 2 +- boost/boost/type_traits/remove_volatile.hpp | 2 +- boost/boost/utility.hpp | 1 + boost/boost/utility/declval.hpp | 9 +- boost/boost/utility/identity_type.hpp | 46 + boost/boost/version.hpp | 7 +- boost/libs/regex/src/fileiter.cpp | 2 + boost/libs/regex/src/icu.cpp | 0 boost/libs/regex/src/posix_api.cpp | 1 + boost/libs/regex/src/regex.cpp | 1 + boost/libs/regex/src/regex_raw_buffer.cpp | 4 +- boost/libs/regex/src/static_mutex.cpp | 0 boost/libs/regex/src/usinstances.cpp | 0 boost/libs/regex/src/wc_regex_traits.cpp | 0 boost/libs/signals/src/named_slot_map.cpp | 6 +- 939 files changed, 13238 insertions(+), 3519 deletions(-) create mode 100644 boost/boost/array.hpp mode change 100755 => 100644 boost/boost/bind/bind_mf2_cc.hpp create mode 100644 boost/boost/concept/assert.hpp create mode 100644 boost/boost/concept/detail/backward_compatibility.hpp create mode 100644 boost/boost/concept/detail/borland.hpp create mode 100644 boost/boost/concept/detail/concept_def.hpp create mode 100644 boost/boost/concept/detail/concept_undef.hpp create mode 100644 boost/boost/concept/detail/general.hpp create mode 100644 boost/boost/concept/detail/has_constraints.hpp create mode 100644 boost/boost/concept/detail/msvc.hpp create mode 100644 boost/boost/concept/usage.hpp create mode 100644 boost/boost/concept_check.hpp mode change 100755 => 100644 boost/boost/config/no_tr1/complex.hpp mode change 100755 => 100644 boost/boost/config/no_tr1/functional.hpp mode change 100755 => 100644 boost/boost/config/no_tr1/memory.hpp mode change 100755 => 100644 boost/boost/config/platform/vxworks.hpp mode change 100755 => 100644 boost/boost/detail/endian.hpp mode change 100755 => 100644 boost/boost/detail/is_function_ref_tester.hpp mode change 100755 => 100644 boost/boost/detail/lcast_precision.hpp mode change 100755 => 100644 boost/boost/detail/sp_typeinfo.hpp mode change 100755 => 100644 boost/boost/exception/exception.hpp delete mode 100644 boost/boost/functional/hash/detail/hash_float_generic.hpp delete mode 100644 boost/boost/functional/hash/detail/hash_float_x86.hpp create mode 100644 boost/boost/functional/hash_fwd.hpp delete mode 100644 boost/boost/implicit_cast.hpp mode change 100755 => 100644 boost/boost/is_placeholder.hpp create mode 100644 boost/boost/iterator/iterator_concepts.hpp create mode 100644 boost/boost/iterator/reverse_iterator.hpp mode change 100755 => 100644 boost/boost/memory_order.hpp mode change 100755 => 100644 boost/boost/mpl/O1_size_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/advance.hpp mode change 100755 => 100644 boost/boost/mpl/advance_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/at.hpp mode change 100755 => 100644 boost/boost/mpl/at_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/arithmetic_op.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/at_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/begin_end_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/comparison_op.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/config/forwarding.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/config/pp_counter.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/config/typeof.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/count_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/has_begin.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/has_rebind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/has_tag.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/largest_int.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/logical_op.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/msvc_dtw.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/msvc_is_class.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/msvc_type.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/numeric_cast_utils.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/numeric_op.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessor/add.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessor/ext_params.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessor/range.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/preprocessor/repeat.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/sequence_wrapper.hpp mode change 100755 => 100644 boost/boost/mpl/aux_/traits_lambda_spec.hpp mode change 100755 => 100644 boost/boost/mpl/back_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/begin_end.hpp mode change 100755 => 100644 boost/boost/mpl/begin_end_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/clear_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/deref.hpp mode change 100755 => 100644 boost/boost/mpl/distance_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/empty_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/equal_to.hpp mode change 100755 => 100644 boost/boost/mpl/front_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/is_placeholder.hpp mode change 100755 => 100644 boost/boost/mpl/iterator_tags.hpp mode change 100755 => 100644 boost/boost/mpl/less.hpp mode change 100755 => 100644 boost/boost/mpl/limits/unrolling.hpp mode change 100755 => 100644 boost/boost/mpl/limits/vector.hpp mode change 100755 => 100644 boost/boost/mpl/long.hpp mode change 100755 => 100644 boost/boost/mpl/long_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/minus.hpp mode change 100755 => 100644 boost/boost/mpl/multiplies.hpp mode change 100755 => 100644 boost/boost/mpl/negate.hpp mode change 100755 => 100644 boost/boost/mpl/numeric_cast.hpp mode change 100755 => 100644 boost/boost/mpl/plus.hpp mode change 100755 => 100644 boost/boost/mpl/pop_back_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/pop_front_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/prior.hpp mode change 100755 => 100644 boost/boost/mpl/push_back_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/push_front_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/sequence_tag.hpp mode change 100755 => 100644 boost/boost/mpl/sequence_tag_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/size_fwd.hpp mode change 100755 => 100644 boost/boost/mpl/tag.hpp mode change 100755 => 100644 boost/boost/mpl/times.hpp mode change 100755 => 100644 boost/boost/mpl/vector.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/O1_size.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/at.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/back.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/begin_end.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/clear.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/empty.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/front.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/include_preprocessed.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/item.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/iterator.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/numbered.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/numbered_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/pop_back.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/pop_front.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/push_back.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/push_front.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/size.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/tag.hpp mode change 100755 => 100644 boost/boost/mpl/vector/aux_/vector0.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector0.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector0_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector10.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector10_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector20.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector20_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector30.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector30_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector40.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector40_c.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector50.hpp mode change 100755 => 100644 boost/boost/mpl/vector/vector50_c.hpp mode change 100755 => 100644 boost/boost/none.hpp mode change 100755 => 100644 boost/boost/none_t.hpp create mode 100644 boost/boost/range/algorithm/equal.hpp create mode 100644 boost/boost/range/begin.hpp create mode 100644 boost/boost/range/concepts.hpp create mode 100644 boost/boost/range/config.hpp create mode 100644 boost/boost/range/const_iterator.hpp create mode 100644 boost/boost/range/detail/begin.hpp create mode 100644 boost/boost/range/detail/common.hpp create mode 100644 boost/boost/range/detail/const_iterator.hpp create mode 100644 boost/boost/range/detail/end.hpp create mode 100644 boost/boost/range/detail/extract_optional_type.hpp create mode 100644 boost/boost/range/detail/implementation_help.hpp create mode 100644 boost/boost/range/detail/iterator.hpp create mode 100644 boost/boost/range/detail/misc_concept.hpp create mode 100644 boost/boost/range/detail/remove_extent.hpp create mode 100644 boost/boost/range/detail/safe_bool.hpp create mode 100644 boost/boost/range/detail/sfinae.hpp create mode 100644 boost/boost/range/detail/size_type.hpp create mode 100644 boost/boost/range/detail/vc6/end.hpp create mode 100644 boost/boost/range/difference_type.hpp create mode 100644 boost/boost/range/distance.hpp create mode 100644 boost/boost/range/empty.hpp create mode 100644 boost/boost/range/end.hpp create mode 100644 boost/boost/range/functions.hpp create mode 100644 boost/boost/range/iterator.hpp create mode 100644 boost/boost/range/iterator_range_core.hpp create mode 100644 boost/boost/range/mutable_iterator.hpp create mode 100644 boost/boost/range/rbegin.hpp create mode 100644 boost/boost/range/rend.hpp create mode 100644 boost/boost/range/result_iterator.hpp create mode 100644 boost/boost/range/reverse_iterator.hpp create mode 100644 boost/boost/range/size.hpp create mode 100644 boost/boost/range/size_type.hpp create mode 100644 boost/boost/range/value_type.hpp create mode 100644 boost/boost/smart_ptr/allocate_shared_array.hpp create mode 100644 boost/boost/smart_ptr/detail/allocate_array_helper.hpp create mode 100644 boost/boost/smart_ptr/detail/array_deleter.hpp create mode 100644 boost/boost/smart_ptr/detail/array_traits.hpp create mode 100644 boost/boost/smart_ptr/detail/array_utility.hpp create mode 100644 boost/boost/smart_ptr/detail/make_array_helper.hpp create mode 100644 boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp create mode 100644 boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp create mode 100644 boost/boost/smart_ptr/detail/sp_forward.hpp create mode 100644 boost/boost/smart_ptr/detail/sp_if_array.hpp create mode 100644 boost/boost/smart_ptr/detail/sp_nullptr_t.hpp create mode 100644 boost/boost/smart_ptr/make_shared_array.hpp create mode 100644 boost/boost/smart_ptr/make_shared_object.hpp create mode 100644 boost/boost/swap.hpp mode change 100755 => 100644 boost/boost/type_traits/decay.hpp mode change 100755 => 100644 boost/boost/type_traits/floating_point_promotion.hpp mode change 100755 => 100644 boost/boost/type_traits/integral_promotion.hpp mode change 100755 => 100644 boost/boost/type_traits/is_complex.hpp mode change 100755 => 100644 boost/boost/type_traits/make_signed.hpp mode change 100755 => 100644 boost/boost/type_traits/make_unsigned.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_all_extents.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_bounds.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_const.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_cv.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_extent.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_pointer.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_reference.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/remove_volatile.hpp mode change 100755 => 100644 boost/boost/type_traits/msvc/typeof.hpp mode change 100755 => 100644 boost/boost/type_traits/promote.hpp create mode 100644 boost/boost/utility/identity_type.hpp mode change 100755 => 100644 boost/libs/regex/src/icu.cpp mode change 100755 => 100644 boost/libs/regex/src/static_mutex.cpp mode change 100755 => 100644 boost/libs/regex/src/usinstances.cpp mode change 100755 => 100644 boost/libs/regex/src/wc_regex_traits.cpp diff --git a/boost/boost/array.hpp b/boost/boost/array.hpp new file mode 100644 index 0000000000..fa06fa9a5f --- /dev/null +++ b/boost/boost/array.hpp @@ -0,0 +1,446 @@ +/* The following code declares class array, + * an STL container (as wrapper) for arrays of constant size. + * + * See + * http://www.boost.org/libs/array/ + * for documentation. + * + * The original author site is at: http://www.josuttis.com/ + * + * (C) Copyright Nicolai M. Josuttis 2001. + * + * Distributed under the Boost Software License, Version 1.0. (See + * accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * 14 Apr 2012 - (mtc) Added support for boost::hash + * 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility. + * 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group. + * See or Trac issue #3168 + * Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow) + * 10 Mar 2010 - added workaround for SUNCC and !STLPort [trac #3893] (Marshall Clow) + * 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis) + * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries. + * 05 Aug 2001 - minor update (Nico Josuttis) + * 20 Jan 2001 - STLport fix (Beman Dawes) + * 29 Sep 2000 - Initial Revision (Nico Josuttis) + * + * Jan 29, 2004 + */ +#ifndef BOOST_ARRAY_HPP +#define BOOST_ARRAY_HPP + +#include + +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +# pragma warning(push) +# pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe +# pragma warning(disable:4510) // boost::array' : default constructor could not be generated +# pragma warning(disable:4610) // warning C4610: class 'boost::array' can never be instantiated - user defined constructor required +#endif + +#include +#include +#include +#include + +// Handles broken standard libraries better than +#include +#include +#include +#include + +// FIXES for broken compilers +#include + + +namespace boost { + + template + class array { + public: + T elems[N]; // fixed-size array of elements of type T + + public: + // type definitions + typedef T value_type; + typedef T* iterator; + typedef const T* const_iterator; + typedef T& reference; + typedef const T& const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + // iterator support + iterator begin() { return elems; } + const_iterator begin() const { return elems; } + const_iterator cbegin() const { return elems; } + + iterator end() { return elems+N; } + const_iterator end() const { return elems+N; } + const_iterator cend() const { return elems+N; } + + // reverse iterator support +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310) + // workaround for broken reverse_iterator in VC7 + typedef std::reverse_iterator > reverse_iterator; + typedef std::reverse_iterator > const_reverse_iterator; +#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#else + // workaround for broken reverse_iterator implementations + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#endif + + reverse_iterator rbegin() { return reverse_iterator(end()); } + const_reverse_iterator rbegin() const { + return const_reverse_iterator(end()); + } + const_reverse_iterator crbegin() const { + return const_reverse_iterator(end()); + } + + reverse_iterator rend() { return reverse_iterator(begin()); } + const_reverse_iterator rend() const { + return const_reverse_iterator(begin()); + } + const_reverse_iterator crend() const { + return const_reverse_iterator(begin()); + } + + // operator[] + reference operator[](size_type i) + { + BOOST_ASSERT_MSG( i < N, "out of range" ); + return elems[i]; + } + + const_reference operator[](size_type i) const + { + BOOST_ASSERT_MSG( i < N, "out of range" ); + return elems[i]; + } + + // at() with range check + reference at(size_type i) { rangecheck(i); return elems[i]; } + const_reference at(size_type i) const { rangecheck(i); return elems[i]; } + + // front() and back() + reference front() + { + return elems[0]; + } + + const_reference front() const + { + return elems[0]; + } + + reference back() + { + return elems[N-1]; + } + + const_reference back() const + { + return elems[N-1]; + } + + // size is constant + static size_type size() { return N; } + static bool empty() { return false; } + static size_type max_size() { return N; } + enum { static_size = N }; + + // swap (note: linear complexity) + void swap (array& y) { + for (size_type i = 0; i < N; ++i) + boost::swap(elems[i],y.elems[i]); + } + + // direct access to data (read-only) + const T* data() const { return elems; } + T* data() { return elems; } + + // use array as C array (direct read/write access to data) + T* c_array() { return elems; } + + // assignment with type conversion + template + array& operator= (const array& rhs) { + std::copy(rhs.begin(),rhs.end(), begin()); + return *this; + } + + // assign one value to all elements + void assign (const T& value) { fill ( value ); } // A synonym for fill + void fill (const T& value) + { + std::fill_n(begin(),size(),value); + } + + // check range (may be private because it is static) + static void rangecheck (size_type i) { + if (i >= size()) { + std::out_of_range e("array<>: index out of range"); + boost::throw_exception(e); + } + } + + }; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + template< class T > + class array< T, 0 > { + + public: + // type definitions + typedef T value_type; + typedef T* iterator; + typedef const T* const_iterator; + typedef T& reference; + typedef const T& const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + // iterator support + iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); } + const_iterator begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } + const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } + + iterator end() { return begin(); } + const_iterator end() const { return begin(); } + const_iterator cend() const { return cbegin(); } + + // reverse iterator support +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310) + // workaround for broken reverse_iterator in VC7 + typedef std::reverse_iterator > reverse_iterator; + typedef std::reverse_iterator > const_reverse_iterator; +#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#else + // workaround for broken reverse_iterator implementations + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#endif + + reverse_iterator rbegin() { return reverse_iterator(end()); } + const_reverse_iterator rbegin() const { + return const_reverse_iterator(end()); + } + const_reverse_iterator crbegin() const { + return const_reverse_iterator(end()); + } + + reverse_iterator rend() { return reverse_iterator(begin()); } + const_reverse_iterator rend() const { + return const_reverse_iterator(begin()); + } + const_reverse_iterator crend() const { + return const_reverse_iterator(begin()); + } + + // operator[] + reference operator[](size_type /*i*/) + { + return failed_rangecheck(); + } + + const_reference operator[](size_type /*i*/) const + { + return failed_rangecheck(); + } + + // at() with range check + reference at(size_type /*i*/) { return failed_rangecheck(); } + const_reference at(size_type /*i*/) const { return failed_rangecheck(); } + + // front() and back() + reference front() + { + return failed_rangecheck(); + } + + const_reference front() const + { + return failed_rangecheck(); + } + + reference back() + { + return failed_rangecheck(); + } + + const_reference back() const + { + return failed_rangecheck(); + } + + // size is constant + static size_type size() { return 0; } + static bool empty() { return true; } + static size_type max_size() { return 0; } + enum { static_size = 0 }; + + void swap (array& /*y*/) { + } + + // direct access to data (read-only) + const T* data() const { return 0; } + T* data() { return 0; } + + // use array as C array (direct read/write access to data) + T* c_array() { return 0; } + + // assignment with type conversion + template + array& operator= (const array& ) { + return *this; + } + + // assign one value to all elements + void assign (const T& value) { fill ( value ); } + void fill (const T& ) {} + + // check range (may be private because it is static) + static reference failed_rangecheck () { + std::out_of_range e("attempt to access element of an empty array"); + boost::throw_exception(e); +#if defined(BOOST_NO_EXCEPTIONS) || (!defined(BOOST_MSVC) && !defined(__PATHSCALE__)) + // + // We need to return something here to keep + // some compilers happy: however we will never + // actually get here.... + // + static T placeholder; + return placeholder; +#endif + } + }; +#endif + + // comparisons + template + bool operator== (const array& x, const array& y) { + return std::equal(x.begin(), x.end(), y.begin()); + } + template + bool operator< (const array& x, const array& y) { + return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); + } + template + bool operator!= (const array& x, const array& y) { + return !(x==y); + } + template + bool operator> (const array& x, const array& y) { + return y + bool operator<= (const array& x, const array& y) { + return !(y + bool operator>= (const array& x, const array& y) { + return !(x + inline void swap (array& x, array& y) { + x.swap(y); + } + +#if defined(__SUNPRO_CC) +// Trac ticket #4757; the Sun Solaris compiler can't handle +// syntax like 'T(&get_c_array(boost::array& arg))[N]' +// +// We can't just use this for all compilers, because the +// borland compilers can't handle this form. + namespace detail { + template struct c_array + { + typedef T type[N]; + }; + } + + // Specific for boost::array: simply returns its elems data member. + template + typename detail::c_array::type& get_c_array(boost::array& arg) + { + return arg.elems; + } + + // Specific for boost::array: simply returns its elems data member. + template + typename const detail::c_array::type& get_c_array(const boost::array& arg) + { + return arg.elems; + } +#else +// Specific for boost::array: simply returns its elems data member. + template + T(&get_c_array(boost::array& arg))[N] + { + return arg.elems; + } + + // Const version. + template + const T(&get_c_array(const boost::array& arg))[N] + { + return arg.elems; + } +#endif + +#if 0 + // Overload for std::array, assuming that std::array will have + // explicit conversion functions as discussed at the WG21 meeting + // in Summit, March 2009. + template + T(&get_c_array(std::array& arg))[N] + { + return static_cast(arg); + } + + // Const version. + template + const T(&get_c_array(const std::array& arg))[N] + { + return static_cast(arg); + } +#endif + + + template + std::size_t hash_value(const array& arr) + { + return boost::hash_range(arr.begin(), arr.end()); + } + +} /* namespace boost */ + + +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +# pragma warning(pop) +#endif + +#endif /*BOOST_ARRAY_HPP*/ diff --git a/boost/boost/bind/bind_mf2_cc.hpp b/boost/boost/bind/bind_mf2_cc.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/concept/assert.hpp b/boost/boost/concept/assert.hpp new file mode 100644 index 0000000000..80eca817ac --- /dev/null +++ b/boost/boost/concept/assert.hpp @@ -0,0 +1,46 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP +# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP + +# include +# include + +// The old protocol used a constraints() member function in concept +// checking classes. If the compiler supports SFINAE, we can detect +// that function and seamlessly support the old concept checking +// classes. In this release, backward compatibility with the old +// concept checking classes is enabled by default, where available. +// The old protocol is deprecated, though, and backward compatibility +// will no longer be the default in the next release. + +# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \ + && !defined(BOOST_NO_SFINAE) \ + \ + && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \ + && !(BOOST_WORKAROUND(__GNUC__, == 2)) + +// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to +// check for the presence of particularmember functions. + +# define BOOST_OLD_CONCEPT_SUPPORT + +# endif + +# ifdef BOOST_MSVC +# include +# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +# include +# else +# include +# endif + + // Usage, in class or function context: + // + // BOOST_CONCEPT_ASSERT((UnaryFunctionConcept)); + // +# define BOOST_CONCEPT_ASSERT(ModelInParens) \ + BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) + +#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP diff --git a/boost/boost/concept/detail/backward_compatibility.hpp b/boost/boost/concept/detail/backward_compatibility.hpp new file mode 100644 index 0000000000..66d573ef4b --- /dev/null +++ b/boost/boost/concept/detail/backward_compatibility.hpp @@ -0,0 +1,16 @@ +// Copyright David Abrahams 2009. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP +# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP + +namespace boost +{ + namespace concepts {} + +# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) + namespace concept = concepts; +# endif +} // namespace boost::concept + +#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP diff --git a/boost/boost/concept/detail/borland.hpp b/boost/boost/concept/detail/borland.hpp new file mode 100644 index 0000000000..300d5d4050 --- /dev/null +++ b/boost/boost/concept/detail/borland.hpp @@ -0,0 +1,30 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP +# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP + +# include +# include + +namespace boost { namespace concepts { + +template +struct require; + +template +struct require +{ + enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; +}; + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ + enum \ + { \ + BOOST_PP_CAT(boost_concept_check,__LINE__) = \ + boost::concepts::require::instantiate \ + } + +}} // namespace boost::concept + +#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP diff --git a/boost/boost/concept/detail/concept_def.hpp b/boost/boost/concept/detail/concept_def.hpp new file mode 100644 index 0000000000..79f628e999 --- /dev/null +++ b/boost/boost/concept/detail/concept_def.hpp @@ -0,0 +1,51 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP +# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP +# include +# include +# include +# include +#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP + +// BOOST_concept(SomeName, (p1)(p2)...(pN)) +// +// Expands to "template struct SomeName" +// +// Also defines an equivalent SomeNameConcept for backward compatibility. +// Maybe in the next release we can kill off the "Concept" suffix for good. +#if BOOST_WORKAROUND(__GNUC__, <= 3) +# define BOOST_concept(name, params) \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct name; /* forward declaration */ \ + \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct BOOST_PP_CAT(name,Concept) \ + : name< BOOST_PP_SEQ_ENUM(params) > \ + { \ + /* at least 2.96 and 3.4.3 both need this */ \ + BOOST_PP_CAT(name,Concept)(); \ + }; \ + \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct name +#else +# define BOOST_concept(name, params) \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct name; /* forward declaration */ \ + \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct BOOST_PP_CAT(name,Concept) \ + : name< BOOST_PP_SEQ_ENUM(params) > \ + { \ + }; \ + \ + template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ + struct name +#endif + +// Helper for BOOST_concept, above. +# define BOOST_CONCEPT_typename(r, ignored, index, t) \ + BOOST_PP_COMMA_IF(index) typename t + diff --git a/boost/boost/concept/detail/concept_undef.hpp b/boost/boost/concept/detail/concept_undef.hpp new file mode 100644 index 0000000000..713db89123 --- /dev/null +++ b/boost/boost/concept/detail/concept_undef.hpp @@ -0,0 +1,5 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# undef BOOST_concept_typename +# undef BOOST_concept diff --git a/boost/boost/concept/detail/general.hpp b/boost/boost/concept/detail/general.hpp new file mode 100644 index 0000000000..e3014c1b87 --- /dev/null +++ b/boost/boost/concept/detail/general.hpp @@ -0,0 +1,75 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP +# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP + +# include +# include + +# ifdef BOOST_OLD_CONCEPT_SUPPORT +# include +# include +# endif + +// This implementation works on Comeau and GCC, all the way back to +// 2.95 +namespace boost { namespace concepts { + +template +struct requirement_; + +namespace detail +{ + template struct instantiate {}; +} + +template +struct requirement +{ + static void failed() { ((Model*)0)->~Model(); } +}; + +struct failed {}; + +template +struct requirement +{ + static void failed() { ((Model*)0)->~Model(); } +}; + +# ifdef BOOST_OLD_CONCEPT_SUPPORT + +template +struct constraint +{ + static void failed() { ((Model*)0)->constraints(); } +}; + +template +struct requirement_ + : mpl::if_< + concepts::not_satisfied + , constraint + , requirement + >::type +{}; + +# else + +// For GCC-2.x, these can't have exactly the same name +template +struct requirement_ + : requirement +{}; + +# endif + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ + typedef ::boost::concepts::detail::instantiate< \ + &::boost::concepts::requirement_::failed> \ + BOOST_PP_CAT(boost_concept_check,__LINE__) + +}} + +#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP diff --git a/boost/boost/concept/detail/has_constraints.hpp b/boost/boost/concept/detail/has_constraints.hpp new file mode 100644 index 0000000000..a309db3d88 --- /dev/null +++ b/boost/boost/concept/detail/has_constraints.hpp @@ -0,0 +1,50 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP +# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP + +# include +# include +# include + +namespace boost { namespace concepts { + +namespace detail +{ + +// Here we implement the metafunction that detects whether a +// constraints metafunction exists + typedef char yes; + typedef char (&no)[2]; + + template + struct wrap_constraints {}; + +#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__) + // Work around the following bogus error in Sun Studio 11, by + // turning off the has_constraints function entirely: + // Error: complex expression not allowed in dependent template + // argument expression + inline no has_constraints_(...); +#else + template + inline yes has_constraints_(Model*, wrap_constraints* = 0); + inline no has_constraints_(...); +#endif +} + +// This would be called "detail::has_constraints," but it has a strong +// tendency to show up in error messages. +template +struct not_satisfied +{ + BOOST_STATIC_CONSTANT( + bool + , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); + typedef mpl::bool_ type; +}; + +}} // namespace boost::concepts::detail + +#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP diff --git a/boost/boost/concept/detail/msvc.hpp b/boost/boost/concept/detail/msvc.hpp new file mode 100644 index 0000000000..9fbd2505d2 --- /dev/null +++ b/boost/boost/concept/detail/msvc.hpp @@ -0,0 +1,114 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP +# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP + +# include +# include + +# ifdef BOOST_OLD_CONCEPT_SUPPORT +# include +# include +# endif + + +namespace boost { namespace concepts { + + +template +struct check +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; + +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION +struct failed {}; +template +struct check +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; +# endif + +# ifdef BOOST_OLD_CONCEPT_SUPPORT + +namespace detail +{ + // No need for a virtual function here, since evaluating + // not_satisfied below will have already instantiated the + // constraints() member. + struct constraint {}; +} + +template +struct require + : mpl::if_c< + not_satisfied::value + , detail::constraint +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + , check +# else + , check +# endif + >::type +{}; + +# else + +template +struct require +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + : check +# else + : check +# endif +{}; + +# endif + +# if BOOST_WORKAROUND(BOOST_MSVC, == 1310) + +// +// The iterator library sees some really strange errors unless we +// do things this way. +// +template +struct require +{ + virtual void failed(Model*) + { + require(); + } +}; + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ +enum \ +{ \ + BOOST_PP_CAT(boost_concept_check,__LINE__) = \ + sizeof(::boost::concepts::require) \ +} + +# else // Not vc-7.1 + +template +require +require_(void(*)(Model)); + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ +enum \ +{ \ + BOOST_PP_CAT(boost_concept_check,__LINE__) = \ + sizeof(::boost::concepts::require_((ModelFnPtr)0)) \ +} + +# endif +}} + +#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP diff --git a/boost/boost/concept/usage.hpp b/boost/boost/concept/usage.hpp new file mode 100644 index 0000000000..21547c31f4 --- /dev/null +++ b/boost/boost/concept/usage.hpp @@ -0,0 +1,44 @@ +// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP +# define BOOST_CONCEPT_USAGE_DWA2006919_HPP + +# include +# include +# include + +namespace boost { namespace concepts { + +# if BOOST_WORKAROUND(__GNUC__, == 2) + +# define BOOST_CONCEPT_USAGE(model) ~model() + +# else + +template +struct usage_requirements +{ + ~usage_requirements() { ((Model*)0)->~Model(); } +}; + +# if BOOST_WORKAROUND(__GNUC__, <= 3) + +# define BOOST_CONCEPT_USAGE(model) \ + model(); /* at least 2.96 and 3.4.3 both need this :( */ \ + BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ + ~model() + +# else + +# define BOOST_CONCEPT_USAGE(model) \ + BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ + ~model() + +# endif + +# endif + +}} // namespace boost::concepts + +#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP diff --git a/boost/boost/concept_check.hpp b/boost/boost/concept_check.hpp new file mode 100644 index 0000000000..bf5a2af783 --- /dev/null +++ b/boost/boost/concept_check.hpp @@ -0,0 +1,1083 @@ +// +// (C) Copyright Jeremy Siek 2000. +// Copyright 2002 The Trustees of Indiana University. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// Revision History: +// 05 May 2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek) +// 02 April 2001: Removed limits header altogether. (Jeremy Siek) +// 01 April 2001: Modified to use new header. (JMaddock) +// + +// See http://www.boost.org/libs/concept_check for documentation. + +#ifndef BOOST_CONCEPT_CHECKS_HPP +# define BOOST_CONCEPT_CHECKS_HPP + +# include + +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include + +namespace boost +{ + + // + // Backward compatibility + // + + template + inline void function_requires(Model* = 0) + { + BOOST_CONCEPT_ASSERT((Model)); + } + template inline void ignore_unused_variable_warning(T const&) {} + +# define BOOST_CLASS_REQUIRE(type_var, ns, concept) \ + BOOST_CONCEPT_ASSERT((ns::concept)) + +# define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept) \ + BOOST_CONCEPT_ASSERT((ns::concept)) + +# define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept) \ + BOOST_CONCEPT_ASSERT((ns::concept)) + +# define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \ + BOOST_CONCEPT_ASSERT((ns::concept)) + + + // + // Begin concept definitions + // + BOOST_concept(Integer, (T)) + { + BOOST_CONCEPT_USAGE(Integer) + { + x.error_type_must_be_an_integer_type(); + } + private: + T x; + }; + + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; + template <> struct Integer {}; +# if defined(BOOST_HAS_LONG_LONG) + template <> struct Integer< ::boost::long_long_type> {}; + template <> struct Integer< ::boost::ulong_long_type> {}; +# elif defined(BOOST_HAS_MS_INT64) + template <> struct Integer<__int64> {}; + template <> struct Integer {}; +# endif + + BOOST_concept(SignedInteger,(T)) { + BOOST_CONCEPT_USAGE(SignedInteger) { + x.error_type_must_be_a_signed_integer_type(); + } + private: + T x; + }; + template <> struct SignedInteger { }; + template <> struct SignedInteger {}; + template <> struct SignedInteger {}; + template <> struct SignedInteger {}; +# if defined(BOOST_HAS_LONG_LONG) + template <> struct SignedInteger< ::boost::long_long_type> {}; +# elif defined(BOOST_HAS_MS_INT64) + template <> struct SignedInteger<__int64> {}; +# endif + + BOOST_concept(UnsignedInteger,(T)) { + BOOST_CONCEPT_USAGE(UnsignedInteger) { + x.error_type_must_be_an_unsigned_integer_type(); + } + private: + T x; + }; + + template <> struct UnsignedInteger {}; + template <> struct UnsignedInteger {}; + template <> struct UnsignedInteger {}; + template <> struct UnsignedInteger {}; +# if defined(BOOST_HAS_LONG_LONG) + template <> struct UnsignedInteger< ::boost::ulong_long_type> {}; +# elif defined(BOOST_HAS_MS_INT64) + template <> struct UnsignedInteger {}; +# endif + + //=========================================================================== + // Basic Concepts + + BOOST_concept(DefaultConstructible,(TT)) + { + BOOST_CONCEPT_USAGE(DefaultConstructible) { + TT a; // require default constructor + ignore_unused_variable_warning(a); + } + }; + + BOOST_concept(Assignable,(TT)) + { + BOOST_CONCEPT_USAGE(Assignable) { +#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL + a = b; // require assignment operator +#endif + const_constraints(b); + } + private: + void const_constraints(const TT& x) { +#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL + a = x; // const required for argument to assignment +#else + ignore_unused_variable_warning(x); +#endif + } + private: + TT a; + TT b; + }; + + + BOOST_concept(CopyConstructible,(TT)) + { + BOOST_CONCEPT_USAGE(CopyConstructible) { + TT a(b); // require copy constructor + TT* ptr = &a; // require address of operator + const_constraints(a); + ignore_unused_variable_warning(ptr); + } + private: + void const_constraints(const TT& a) { + TT c(a); // require const copy constructor + const TT* ptr = &a; // require const address of operator + ignore_unused_variable_warning(c); + ignore_unused_variable_warning(ptr); + } + TT b; + }; + +#if (defined _MSC_VER) +# pragma warning( push ) +# pragma warning( disable : 4510 ) // default constructor could not be generated +# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required +#endif + // The SGI STL version of Assignable requires copy constructor and operator= + BOOST_concept(SGIAssignable,(TT)) + { + BOOST_CONCEPT_USAGE(SGIAssignable) { + TT c(a); +#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL + a = b; // require assignment operator +#endif + const_constraints(b); + ignore_unused_variable_warning(c); + } + private: + void const_constraints(const TT& x) { + TT c(x); +#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL + a = x; // const required for argument to assignment +#endif + ignore_unused_variable_warning(c); + } + TT a; + TT b; + }; +#if (defined _MSC_VER) +# pragma warning( pop ) +#endif + + BOOST_concept(Convertible,(X)(Y)) + { + BOOST_CONCEPT_USAGE(Convertible) { + Y y = x; + ignore_unused_variable_warning(y); + } + private: + X x; + }; + + // The C++ standard requirements for many concepts talk about return + // types that must be "convertible to bool". The problem with this + // requirement is that it leaves the door open for evil proxies that + // define things like operator|| with strange return types. Two + // possible solutions are: + // 1) require the return type to be exactly bool + // 2) stay with convertible to bool, and also + // specify stuff about all the logical operators. + // For now we just test for convertible to bool. + template + void require_boolean_expr(const TT& t) { + bool x = t; + ignore_unused_variable_warning(x); + } + + BOOST_concept(EqualityComparable,(TT)) + { + BOOST_CONCEPT_USAGE(EqualityComparable) { + require_boolean_expr(a == b); + require_boolean_expr(a != b); + } + private: + TT a, b; + }; + + BOOST_concept(LessThanComparable,(TT)) + { + BOOST_CONCEPT_USAGE(LessThanComparable) { + require_boolean_expr(a < b); + } + private: + TT a, b; + }; + + // This is equivalent to SGI STL's LessThanComparable. + BOOST_concept(Comparable,(TT)) + { + BOOST_CONCEPT_USAGE(Comparable) { + require_boolean_expr(a < b); + require_boolean_expr(a > b); + require_boolean_expr(a <= b); + require_boolean_expr(a >= b); + } + private: + TT a, b; + }; + +#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME) \ + BOOST_concept(NAME, (First)(Second)) \ + { \ + BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ + private: \ + bool constraints_() { return a OP b; } \ + First a; \ + Second b; \ + } + +#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME) \ + BOOST_concept(NAME, (Ret)(First)(Second)) \ + { \ + BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ + private: \ + Ret constraints_() { return a OP b; } \ + First a; \ + Second b; \ + } + + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp); + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp); + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp); + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp); + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp); + BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp); + + BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp); + BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp); + BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp); + BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp); + BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp); + + //=========================================================================== + // Function Object Concepts + + BOOST_concept(Generator,(Func)(Return)) + { + BOOST_CONCEPT_USAGE(Generator) { test(is_void()); } + + private: + void test(boost::mpl::false_) + { + // Do we really want a reference here? + const Return& r = f(); + ignore_unused_variable_warning(r); + } + + void test(boost::mpl::true_) + { + f(); + } + + Func f; + }; + + BOOST_concept(UnaryFunction,(Func)(Return)(Arg)) + { + BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void()); } + + private: + void test(boost::mpl::false_) + { + f(arg); // "priming the pump" this way keeps msvc6 happy (ICE) + Return r = f(arg); + ignore_unused_variable_warning(r); + } + + void test(boost::mpl::true_) + { + f(arg); + } + +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ + && BOOST_WORKAROUND(__GNUC__, > 3))) + // Declare a dummy construktor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // (warning: non-static reference "const double& boost::UnaryFunction::arg" + // in class without a constructor [-Wuninitialized]) + UnaryFunction(); +#endif + + Func f; + Arg arg; + }; + + BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second)) + { + BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void()); } + private: + void test(boost::mpl::false_) + { + f(first,second); + Return r = f(first, second); // require operator() + (void)r; + } + + void test(boost::mpl::true_) + { + f(first,second); + } + +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ + && BOOST_WORKAROUND(__GNUC__, > 3))) + // Declare a dummy constructor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // (warning: non-static reference "const double& boost::BinaryFunction::arg" + // in class without a constructor [-Wuninitialized]) + BinaryFunction(); +#endif + + Func f; + First first; + Second second; + }; + + BOOST_concept(UnaryPredicate,(Func)(Arg)) + { + BOOST_CONCEPT_USAGE(UnaryPredicate) { + require_boolean_expr(f(arg)); // require operator() returning bool + } + private: +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ + && BOOST_WORKAROUND(__GNUC__, > 3))) + // Declare a dummy constructor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // (warning: non-static reference "const double& boost::UnaryPredicate::arg" + // in class without a constructor [-Wuninitialized]) + UnaryPredicate(); +#endif + + Func f; + Arg arg; + }; + + BOOST_concept(BinaryPredicate,(Func)(First)(Second)) + { + BOOST_CONCEPT_USAGE(BinaryPredicate) { + require_boolean_expr(f(a, b)); // require operator() returning bool + } + private: +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ + && BOOST_WORKAROUND(__GNUC__, > 3))) + // Declare a dummy constructor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // (warning: non-static reference "const double& boost::BinaryPredicate::arg" + // in class without a constructor [-Wuninitialized]) + BinaryPredicate(); +#endif + Func f; + First a; + Second b; + }; + + // use this when functor is used inside a container class like std::set + BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second)) + : BinaryPredicate + { + BOOST_CONCEPT_USAGE(Const_BinaryPredicate) { + const_constraints(f); + } + private: + void const_constraints(const Func& fun) { + // operator() must be a const member function + require_boolean_expr(fun(a, b)); + } +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ + && BOOST_WORKAROUND(__GNUC__, > 3))) + // Declare a dummy constructor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // (warning: non-static reference "const double& boost::Const_BinaryPredicate::arg" + // in class without a constructor [-Wuninitialized]) + Const_BinaryPredicate(); +#endif + + Func f; + First a; + Second b; + }; + + BOOST_concept(AdaptableGenerator,(Func)(Return)) + : Generator + { + typedef typename Func::result_type result_type; + + BOOST_CONCEPT_USAGE(AdaptableGenerator) + { + BOOST_CONCEPT_ASSERT((Convertible)); + } + }; + + BOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg)) + : UnaryFunction + { + typedef typename Func::argument_type argument_type; + typedef typename Func::result_type result_type; + + ~AdaptableUnaryFunction() + { + BOOST_CONCEPT_ASSERT((Convertible)); + BOOST_CONCEPT_ASSERT((Convertible)); + } + }; + + BOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second)) + : BinaryFunction< + Func + , typename Func::result_type + , typename Func::first_argument_type + , typename Func::second_argument_type + > + { + typedef typename Func::first_argument_type first_argument_type; + typedef typename Func::second_argument_type second_argument_type; + typedef typename Func::result_type result_type; + + ~AdaptableBinaryFunction() + { + BOOST_CONCEPT_ASSERT((Convertible)); + BOOST_CONCEPT_ASSERT((Convertible)); + BOOST_CONCEPT_ASSERT((Convertible)); + } + }; + + BOOST_concept(AdaptablePredicate,(Func)(Arg)) + : UnaryPredicate + , AdaptableUnaryFunction + { + }; + + BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second)) + : BinaryPredicate + , AdaptableBinaryFunction + { + }; + + //=========================================================================== + // Iterator Concepts + + BOOST_concept(InputIterator,(TT)) + : Assignable + , EqualityComparable + { + typedef typename boost::detail::iterator_traits::value_type value_type; + typedef typename boost::detail::iterator_traits::difference_type difference_type; + typedef typename boost::detail::iterator_traits::reference reference; + typedef typename boost::detail::iterator_traits::pointer pointer; + typedef typename boost::detail::iterator_traits::iterator_category iterator_category; + + BOOST_CONCEPT_USAGE(InputIterator) + { + BOOST_CONCEPT_ASSERT((SignedInteger)); + BOOST_CONCEPT_ASSERT((Convertible)); + + TT j(i); + (void)*i; // require dereference operator + ++j; // require preincrement operator + i++; // require postincrement operator + } + private: + TT i; + }; + + BOOST_concept(OutputIterator,(TT)(ValueT)) + : Assignable + { + BOOST_CONCEPT_USAGE(OutputIterator) { + + ++i; // require preincrement operator + i++; // require postincrement operator + *i++ = t; // require postincrement and assignment + } + private: + TT i, j; + ValueT t; + }; + + BOOST_concept(ForwardIterator,(TT)) + : InputIterator + { + BOOST_CONCEPT_USAGE(ForwardIterator) + { + BOOST_CONCEPT_ASSERT((Convertible< + BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category + , std::forward_iterator_tag + >)); + + typename InputIterator::reference r = *i; + ignore_unused_variable_warning(r); + } + + private: + TT i; + }; + + BOOST_concept(Mutable_ForwardIterator,(TT)) + : ForwardIterator + { + BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) { + *i++ = *i; // require postincrement and assignment + } + private: + TT i; + }; + + BOOST_concept(BidirectionalIterator,(TT)) + : ForwardIterator + { + BOOST_CONCEPT_USAGE(BidirectionalIterator) + { + BOOST_CONCEPT_ASSERT((Convertible< + BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category + , std::bidirectional_iterator_tag + >)); + + --i; // require predecrement operator + i--; // require postdecrement operator + } + private: + TT i; + }; + + BOOST_concept(Mutable_BidirectionalIterator,(TT)) + : BidirectionalIterator + , Mutable_ForwardIterator + { + BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator) + { + *i-- = *i; // require postdecrement and assignment + } + private: + TT i; + }; + + BOOST_concept(RandomAccessIterator,(TT)) + : BidirectionalIterator + , Comparable + { + BOOST_CONCEPT_USAGE(RandomAccessIterator) + { + BOOST_CONCEPT_ASSERT((Convertible< + BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category + , std::random_access_iterator_tag + >)); + + i += n; // require assignment addition operator + i = i + n; i = n + i; // require addition with difference type + i -= n; // require assignment subtraction operator + i = i - n; // require subtraction with difference type + n = i - j; // require difference operator + (void)i[n]; // require element access operator + } + + private: + TT a, b; + TT i, j; + typename boost::detail::iterator_traits::difference_type n; + }; + + BOOST_concept(Mutable_RandomAccessIterator,(TT)) + : RandomAccessIterator + , Mutable_BidirectionalIterator + { + BOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator) + { + i[n] = *i; // require element access and assignment + } + private: + TT i; + typename boost::detail::iterator_traits::difference_type n; + }; + + //=========================================================================== + // Container s + + BOOST_concept(Container,(C)) + : Assignable + { + typedef typename C::value_type value_type; + typedef typename C::difference_type difference_type; + typedef typename C::size_type size_type; + typedef typename C::const_reference const_reference; + typedef typename C::const_pointer const_pointer; + typedef typename C::const_iterator const_iterator; + + BOOST_CONCEPT_USAGE(Container) + { + BOOST_CONCEPT_ASSERT((InputIterator)); + const_constraints(c); + } + + private: + void const_constraints(const C& cc) { + i = cc.begin(); + i = cc.end(); + n = cc.size(); + n = cc.max_size(); + b = cc.empty(); + } + C c; + bool b; + const_iterator i; + size_type n; + }; + + BOOST_concept(Mutable_Container,(C)) + : Container + { + typedef typename C::reference reference; + typedef typename C::iterator iterator; + typedef typename C::pointer pointer; + + BOOST_CONCEPT_USAGE(Mutable_Container) + { + BOOST_CONCEPT_ASSERT(( + Assignable)); + + BOOST_CONCEPT_ASSERT((InputIterator)); + + i = c.begin(); + i = c.end(); + c.swap(c2); + } + + private: + iterator i; + C c, c2; + }; + + BOOST_concept(ForwardContainer,(C)) + : Container + { + BOOST_CONCEPT_USAGE(ForwardContainer) + { + BOOST_CONCEPT_ASSERT(( + ForwardIterator< + typename ForwardContainer::const_iterator + >)); + } + }; + + BOOST_concept(Mutable_ForwardContainer,(C)) + : ForwardContainer + , Mutable_Container + { + BOOST_CONCEPT_USAGE(Mutable_ForwardContainer) + { + BOOST_CONCEPT_ASSERT(( + Mutable_ForwardIterator< + typename Mutable_ForwardContainer::iterator + >)); + } + }; + + BOOST_concept(ReversibleContainer,(C)) + : ForwardContainer + { + typedef typename + C::const_reverse_iterator + const_reverse_iterator; + + BOOST_CONCEPT_USAGE(ReversibleContainer) + { + BOOST_CONCEPT_ASSERT(( + BidirectionalIterator< + typename ReversibleContainer::const_iterator>)); + + BOOST_CONCEPT_ASSERT((BidirectionalIterator)); + + const_constraints(c); + } + private: + void const_constraints(const C& cc) + { + const_reverse_iterator i = cc.rbegin(); + i = cc.rend(); + } + C c; + }; + + BOOST_concept(Mutable_ReversibleContainer,(C)) + : Mutable_ForwardContainer + , ReversibleContainer + { + typedef typename C::reverse_iterator reverse_iterator; + + BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer) + { + typedef typename Mutable_ForwardContainer::iterator iterator; + BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); + BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); + + reverse_iterator i = c.rbegin(); + i = c.rend(); + } + private: + C c; + }; + + BOOST_concept(RandomAccessContainer,(C)) + : ReversibleContainer + { + typedef typename C::size_type size_type; + typedef typename C::const_reference const_reference; + + BOOST_CONCEPT_USAGE(RandomAccessContainer) + { + BOOST_CONCEPT_ASSERT(( + RandomAccessIterator< + typename RandomAccessContainer::const_iterator + >)); + + const_constraints(c); + } + private: + void const_constraints(const C& cc) + { + const_reference r = cc[n]; + ignore_unused_variable_warning(r); + } + + C c; + size_type n; + }; + + BOOST_concept(Mutable_RandomAccessContainer,(C)) + : Mutable_ReversibleContainer + , RandomAccessContainer + { + private: + typedef Mutable_RandomAccessContainer self; + public: + BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer) + { + BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); + BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); + + typename self::reference r = c[i]; + ignore_unused_variable_warning(r); + } + + private: + typename Mutable_ReversibleContainer::size_type i; + C c; + }; + + // A Sequence is inherently mutable + BOOST_concept(Sequence,(S)) + : Mutable_ForwardContainer + // Matt Austern's book puts DefaultConstructible here, the C++ + // standard places it in Container --JGS + // ... so why aren't we following the standard? --DWA + , DefaultConstructible + { + BOOST_CONCEPT_USAGE(Sequence) + { + S + c(n), + c2(n, t), + c3(first, last); + + c.insert(p, t); + c.insert(p, n, t); + c.insert(p, first, last); + + c.erase(p); + c.erase(p, q); + + typename Sequence::reference r = c.front(); + + ignore_unused_variable_warning(c); + ignore_unused_variable_warning(c2); + ignore_unused_variable_warning(c3); + ignore_unused_variable_warning(r); + const_constraints(c); + } + private: + void const_constraints(const S& c) { + typename Sequence::const_reference r = c.front(); + ignore_unused_variable_warning(r); + } + + typename S::value_type t; + typename S::size_type n; + typename S::value_type* first, *last; + typename S::iterator p, q; + }; + + BOOST_concept(FrontInsertionSequence,(S)) + : Sequence + { + BOOST_CONCEPT_USAGE(FrontInsertionSequence) + { + c.push_front(t); + c.pop_front(); + } + private: + S c; + typename S::value_type t; + }; + + BOOST_concept(BackInsertionSequence,(S)) + : Sequence + { + BOOST_CONCEPT_USAGE(BackInsertionSequence) + { + c.push_back(t); + c.pop_back(); + typename BackInsertionSequence::reference r = c.back(); + ignore_unused_variable_warning(r); + const_constraints(c); + } + private: + void const_constraints(const S& cc) { + typename BackInsertionSequence::const_reference + r = cc.back(); + ignore_unused_variable_warning(r); + }; + S c; + typename S::value_type t; + }; + + BOOST_concept(AssociativeContainer,(C)) + : ForwardContainer + , DefaultConstructible + { + typedef typename C::key_type key_type; + typedef typename C::key_compare key_compare; + typedef typename C::value_compare value_compare; + typedef typename C::iterator iterator; + + BOOST_CONCEPT_USAGE(AssociativeContainer) + { + i = c.find(k); + r = c.equal_range(k); + c.erase(k); + c.erase(i); + c.erase(r.first, r.second); + const_constraints(c); + BOOST_CONCEPT_ASSERT((BinaryPredicate)); + + typedef typename AssociativeContainer::value_type value_type_; + BOOST_CONCEPT_ASSERT((BinaryPredicate)); + } + + // Redundant with the base concept, but it helps below. + typedef typename C::const_iterator const_iterator; + private: + void const_constraints(const C& cc) + { + ci = cc.find(k); + n = cc.count(k); + cr = cc.equal_range(k); + } + + C c; + iterator i; + std::pair r; + const_iterator ci; + std::pair cr; + typename C::key_type k; + typename C::size_type n; + }; + + BOOST_concept(UniqueAssociativeContainer,(C)) + : AssociativeContainer + { + BOOST_CONCEPT_USAGE(UniqueAssociativeContainer) + { + C c(first, last); + + pos_flag = c.insert(t); + c.insert(first, last); + + ignore_unused_variable_warning(c); + } + private: + std::pair pos_flag; + typename C::value_type t; + typename C::value_type* first, *last; + }; + + BOOST_concept(MultipleAssociativeContainer,(C)) + : AssociativeContainer + { + BOOST_CONCEPT_USAGE(MultipleAssociativeContainer) + { + C c(first, last); + + pos = c.insert(t); + c.insert(first, last); + + ignore_unused_variable_warning(c); + ignore_unused_variable_warning(pos); + } + private: + typename C::iterator pos; + typename C::value_type t; + typename C::value_type* first, *last; + }; + + BOOST_concept(SimpleAssociativeContainer,(C)) + : AssociativeContainer + { + BOOST_CONCEPT_USAGE(SimpleAssociativeContainer) + { + typedef typename C::key_type key_type; + typedef typename C::value_type value_type; + BOOST_MPL_ASSERT((boost::is_same)); + } + }; + + BOOST_concept(PairAssociativeContainer,(C)) + : AssociativeContainer + { + BOOST_CONCEPT_USAGE(PairAssociativeContainer) + { + typedef typename C::key_type key_type; + typedef typename C::value_type value_type; + typedef typename C::mapped_type mapped_type; + typedef std::pair required_value_type; + BOOST_MPL_ASSERT((boost::is_same)); + } + }; + + BOOST_concept(SortedAssociativeContainer,(C)) + : AssociativeContainer + , ReversibleContainer + { + BOOST_CONCEPT_USAGE(SortedAssociativeContainer) + { + C + c(kc), + c2(first, last), + c3(first, last, kc); + + p = c.upper_bound(k); + p = c.lower_bound(k); + r = c.equal_range(k); + + c.insert(p, t); + + ignore_unused_variable_warning(c); + ignore_unused_variable_warning(c2); + ignore_unused_variable_warning(c3); + const_constraints(c); + } + + void const_constraints(const C& c) + { + kc = c.key_comp(); + vc = c.value_comp(); + + cp = c.upper_bound(k); + cp = c.lower_bound(k); + cr = c.equal_range(k); + } + + private: + typename C::key_compare kc; + typename C::value_compare vc; + typename C::value_type t; + typename C::key_type k; + typedef typename C::iterator iterator; + typedef typename C::const_iterator const_iterator; + + typedef SortedAssociativeContainer self; + iterator p; + const_iterator cp; + std::pair r; + std::pair cr; + typename C::value_type* first, *last; + }; + + // HashedAssociativeContainer + + BOOST_concept(Collection,(C)) + { + BOOST_CONCEPT_USAGE(Collection) + { + boost::function_requires >(); + boost::function_requires >(); + boost::function_requires >(); + const_constraints(c); + i = c.begin(); + i = c.end(); + c.swap(c); + } + + void const_constraints(const C& cc) { + ci = cc.begin(); + ci = cc.end(); + n = cc.size(); + b = cc.empty(); + } + + private: + typedef typename C::value_type value_type; + typedef typename C::iterator iterator; + typedef typename C::const_iterator const_iterator; + typedef typename C::reference reference; + typedef typename C::const_reference const_reference; + // typedef typename C::pointer pointer; + typedef typename C::difference_type difference_type; + typedef typename C::size_type size_type; + + C c; + bool b; + iterator i; + const_iterator ci; + size_type n; + }; +} // namespace boost + +# include + +#endif // BOOST_CONCEPT_CHECKS_HPP + diff --git a/boost/boost/config/auto_link.hpp b/boost/boost/config/auto_link.hpp index ad021f4077..e36d06a05a 100644 --- a/boost/boost/config/auto_link.hpp +++ b/boost/boost/config/auto_link.hpp @@ -60,14 +60,14 @@ BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, contains one or more of the following letters after - a hiphen: + a hyphen: s static runtime (dynamic if not present). g debug/diagnostic runtime (release if not present). y Python debug/diagnostic runtime (release if not present). d debug build (release if not present). - g debug/diagnostic runtime (release if not present). - p STLPort Build. + p STLport build. + n STLport build without its IOStreams. BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. @@ -114,68 +114,69 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // select toolset if not defined already: // #ifndef BOOST_LIB_TOOLSET -// Note: no compilers before 1200 are supported -#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200) + // Note: no compilers before 1200 are supported +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300) + +# ifdef UNDER_CE + // eVC4: +# define BOOST_LIB_TOOLSET "evc4" +# else + // vc6: +# define BOOST_LIB_TOOLSET "vc6" +# endif + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310) + + // vc7: +# define BOOST_LIB_TOOLSET "vc7" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400) + + // vc71: +# define BOOST_LIB_TOOLSET "vc71" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500) + + // vc80: +# define BOOST_LIB_TOOLSET "vc80" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600) + + // vc90: +# define BOOST_LIB_TOOLSET "vc90" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700) + + // vc10: +# define BOOST_LIB_TOOLSET "vc100" + +# elif defined(BOOST_MSVC) + + // vc11: +# define BOOST_LIB_TOOLSET "vc110" + +# elif defined(__BORLANDC__) + + // CBuilder 6: +# define BOOST_LIB_TOOLSET "bcb" + +# elif defined(__ICL) + + // Intel C++, no version number: +# define BOOST_LIB_TOOLSET "iw" + +# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) + + // Metrowerks CodeWarrior 8.x +# define BOOST_LIB_TOOLSET "cw8" + +# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) + + // Metrowerks CodeWarrior 9.x +# define BOOST_LIB_TOOLSET "cw9" -# ifdef UNDER_CE - // vc6: -# define BOOST_LIB_TOOLSET "evc4" -# else - // vc6: -# define BOOST_LIB_TOOLSET "vc6" # endif - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) - - // vc7: -# define BOOST_LIB_TOOLSET "vc7" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) - - // vc71: -# define BOOST_LIB_TOOLSET "vc71" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400) - - // vc80: -# define BOOST_LIB_TOOLSET "vc80" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500) - - // vc90: -# define BOOST_LIB_TOOLSET "vc90" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600) - - // vc10: -# define BOOST_LIB_TOOLSET "vc100" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700) - - // vc11: -# define BOOST_LIB_TOOLSET "vc110" - -#elif defined(__BORLANDC__) - - // CBuilder 6: -# define BOOST_LIB_TOOLSET "bcb" - -#elif defined(__ICL) - - // Intel C++, no version number: -# define BOOST_LIB_TOOLSET "iw" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) - - // Metrowerks CodeWarrior 8.x -# define BOOST_LIB_TOOLSET "cw8" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) - - // Metrowerks CodeWarrior 9.x -# define BOOST_LIB_TOOLSET "cw9" - -#endif #endif // BOOST_LIB_TOOLSET // @@ -201,11 +202,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # elif defined(_DEBUG)\ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) # define BOOST_LIB_RT_OPT "-gydp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # elif defined(_DEBUG) # define BOOST_LIB_RT_OPT "-gdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # else # define BOOST_LIB_RT_OPT "-p" @@ -221,11 +222,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # elif defined(_DEBUG)\ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) # define BOOST_LIB_RT_OPT "-gydpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # elif defined(_DEBUG) # define BOOST_LIB_RT_OPT "-gdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # else # define BOOST_LIB_RT_OPT "-pn" @@ -255,11 +256,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # elif defined(_DEBUG)\ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) # define BOOST_LIB_RT_OPT "-sgydp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # elif defined(_DEBUG) # define BOOST_LIB_RT_OPT "-sgdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # else # define BOOST_LIB_RT_OPT "-sp" @@ -275,11 +276,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # elif defined(_DEBUG)\ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) # define BOOST_LIB_RT_OPT "-sgydpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # elif defined(_DEBUG) # define BOOST_LIB_RT_OPT "-sgdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") # error "Build options aren't compatible with pre-built libraries" # else # define BOOST_LIB_RT_OPT "-spn" @@ -312,7 +313,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // sanity check: // #if defined(__STL_DEBUG) || defined(_STLP_DEBUG) -#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form" +#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form" #endif # ifdef _RTLDLL diff --git a/boost/boost/config/compiler/borland.hpp b/boost/boost/config/compiler/borland.hpp index 680e87bde8..cffa8ea0ea 100644 --- a/boost/boost/config/compiler/borland.hpp +++ b/boost/boost/config/compiler/borland.hpp @@ -47,7 +47,7 @@ # define BOOST_NO_OPERATORS_IN_NAMESPACE # endif // Variadic macros do not exist for C++ Builder versions 5 and below -#define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_CXX11_VARIADIC_MACROS # endif // Version 5.51 and below: @@ -150,14 +150,14 @@ // C++0x Macros: // #if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610) -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T -# define BOOST_NO_DECLTYPE -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_EXTERN_TEMPLATE -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_SCOPED_ENUMS -# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_STATIC_ASSERT #else # define BOOST_HAS_ALIGNOF # define BOOST_HAS_CHAR16_T @@ -169,25 +169,27 @@ # define BOOST_HAS_STATIC_ASSERT #endif -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #if __BORLANDC__ >= 0x590 # define BOOST_HAS_TR1_HASH diff --git a/boost/boost/config/compiler/clang.hpp b/boost/boost/config/compiler/clang.hpp index a183f34be7..18d6e5462a 100644 --- a/boost/boost/config/compiler/clang.hpp +++ b/boost/boost/config/compiler/clang.hpp @@ -8,15 +8,18 @@ // Clang compiler setup. -#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) -#else +#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) # define BOOST_NO_EXCEPTIONS #endif -#if !__has_feature(cxx_rtti) +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) # define BOOST_NO_RTTI #endif +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) +# define BOOST_NO_TYPEID +#endif + #if defined(__int64) # define BOOST_HAS_MS_INT64 #endif @@ -24,89 +27,109 @@ #define BOOST_HAS_NRVO // Clang supports "long long" in all compilation modes. +#define BOOST_HAS_LONG_LONG + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) +# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +# define BOOST_SYMBOL_IMPORT +# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) +#endif #if !__has_feature(cxx_auto_type) -# define BOOST_NO_AUTO_DECLARATIONS -# define BOOST_NO_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #endif #if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T #endif #if !__has_feature(cxx_constexpr) -# define BOOST_NO_CONSTEXPR +# define BOOST_NO_CXX11_CONSTEXPR #endif #if !__has_feature(cxx_decltype) -# define BOOST_NO_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE #endif -#define BOOST_NO_DECLTYPE_N3276 +#if !__has_feature(cxx_decltype_incomplete_return_types) +# define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif #if !__has_feature(cxx_defaulted_functions) -# define BOOST_NO_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS #endif #if !__has_feature(cxx_deleted_functions) -# define BOOST_NO_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS #endif #if !__has_feature(cxx_explicit_conversions) -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS #endif #if !__has_feature(cxx_default_function_template_args) -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS #endif #if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_INITIALIZER_LISTS +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST #endif #if !__has_feature(cxx_lambdas) -# define BOOST_NO_LAMBDAS +# define BOOST_NO_CXX11_LAMBDAS +#endif + +#if !__has_feature(cxx_local_type_template_args) +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS #endif #if !__has_feature(cxx_noexcept) -# define BOOST_NO_NOEXCEPT +# define BOOST_NO_CXX11_NOEXCEPT #endif #if !__has_feature(cxx_nullptr) -# define BOOST_NO_NULLPTR +# define BOOST_NO_CXX11_NULLPTR +#endif + +#if !__has_feature(cxx_range_for) +# define BOOST_NO_CXX11_RANGE_BASED_FOR #endif #if !__has_feature(cxx_raw_string_literals) -# define BOOST_NO_RAW_LITERALS +# define BOOST_NO_CXX11_RAW_LITERALS #endif #if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #endif #if !__has_feature(cxx_rvalue_references) -# define BOOST_NO_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES #endif #if !__has_feature(cxx_strong_enums) -# define BOOST_NO_SCOPED_ENUMS +# define BOOST_NO_CXX11_SCOPED_ENUMS #endif #if !__has_feature(cxx_static_assert) -# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_CXX11_STATIC_ASSERT #endif #if !__has_feature(cxx_alias_templates) -# define BOOST_NO_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_TEMPLATE_ALIASES #endif #if !__has_feature(cxx_unicode_literals) -# define BOOST_NO_UNICODE_LITERALS +# define BOOST_NO_CXX11_UNICODE_LITERALS #endif #if !__has_feature(cxx_variadic_templates) -# define BOOST_NO_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES #endif // Clang always supports variadic macros diff --git a/boost/boost/config/compiler/codegear.hpp b/boost/boost/config/compiler/codegear.hpp index f1887a0c0b..1a6df33520 100644 --- a/boost/boost/config/compiler/codegear.hpp +++ b/boost/boost/config/compiler/codegear.hpp @@ -76,7 +76,7 @@ // C++0x macros: // #if (__CODEGEARC__ <= 0x620) -#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_CXX11_STATIC_ASSERT #else #define BOOST_HAS_STATIC_ASSERT #endif @@ -91,24 +91,25 @@ // #define BOOST_HAS_STATIC_ASSERT #define BOOST_HAS_STD_TYPE_TRAITS -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX // // TR1 macros: @@ -120,7 +121,7 @@ #define BOOST_HAS_MACRO_USE_FACET -#define BOOST_NO_INITIALIZER_LISTS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST // On non-Win32 platforms let the platform config figure this out: #ifdef _WIN32 diff --git a/boost/boost/config/compiler/common_edg.hpp b/boost/boost/config/compiler/common_edg.hpp index 10333ad2d3..441a055fa2 100644 --- a/boost/boost/config/compiler/common_edg.hpp +++ b/boost/boost/config/compiler/common_edg.hpp @@ -60,39 +60,41 @@ // See above for BOOST_NO_LONG_LONG // #if (__EDG_VERSION__ < 310) -# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE #endif #if (__EDG_VERSION__ <= 310) // No support for initializer lists -# define BOOST_NO_INITIALIZER_LISTS +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST #endif #if (__EDG_VERSION__ < 400) -# define BOOST_NO_VARIADIC_MACROS +# define BOOST_NO_CXX11_VARIADIC_MACROS #endif -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #ifdef c_plusplus // EDG has "long long" in non-strict mode diff --git a/boost/boost/config/compiler/cray.hpp b/boost/boost/config/compiler/cray.hpp index ad2eeaf55b..5463ea08c7 100644 --- a/boost/boost/config/compiler/cray.hpp +++ b/boost/boost/config/compiler/cray.hpp @@ -25,33 +25,35 @@ // // Cray peculiarities, probably version 7 specific: // -#undef BOOST_NO_AUTO_DECLARATIONS -#undef BOOST_NO_AUTO_MULTIDECLARATIONS +#undef BOOST_NO_CXX11_AUTO_DECLARATIONS +#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #define BOOST_HAS_NRVO -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_UNICODE_LITERALS #define BOOST_NO_TWO_PHASE_NAME_LOOKUP #define BOOST_HAS_NRVO -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_STATIC_ASSERT #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_NULLPTR -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_LAMBDAS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DECLTYPE -#define BOOST_NO_CONSTEXPR +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_CONSTEXPR #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CHAR16_T //#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG #define BOOST_MATH_DISABLE_STD_FPCLASSIFY //#define BOOST_HAS_FPCLASSIFY diff --git a/boost/boost/config/compiler/digitalmars.hpp b/boost/boost/config/compiler/digitalmars.hpp index ed92306fb1..15cc209d00 100644 --- a/boost/boost/config/compiler/digitalmars.hpp +++ b/boost/boost/config/compiler/digitalmars.hpp @@ -60,33 +60,35 @@ // // C++0x features // -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #if (__DMC__ < 0x812) -#define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_CXX11_VARIADIC_MACROS #endif #if __DMC__ < 0x800 diff --git a/boost/boost/config/compiler/gcc.hpp b/boost/boost/config/compiler/gcc.hpp index 5a69cb4931..c0ac30af27 100644 --- a/boost/boost/config/compiler/gcc.hpp +++ b/boost/boost/config/compiler/gcc.hpp @@ -42,9 +42,9 @@ # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL # define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE // Variadic macros do not exist for gcc versions before 3.0 -# define BOOST_NO_VARIADIC_MACROS +# define BOOST_NO_CXX11_VARIADIC_MACROS #elif __GNUC__ == 3 # if defined (__PATHSCALE__) # define BOOST_NO_TWO_PHASE_NAME_LOOKUP @@ -61,7 +61,7 @@ # if __GNUC_MINOR__ < 4 # define BOOST_NO_IS_ABSTRACT # endif -# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE #endif #if __GNUC__ < 4 // @@ -146,9 +146,12 @@ # endif #endif -// C++0x features not implemented in any GCC version // -#define BOOST_NO_TEMPLATE_ALIASES +// Recent GCC versions have __int128 when in 64-bit mode: +// +#if defined(__SIZEOF_INT128__) +# define BOOST_HAS_INT128 +#endif // C++0x features in 4.3.n and later // @@ -161,65 +164,70 @@ # define BOOST_HAS_STATIC_ASSERT # define BOOST_HAS_VARIADIC_TMPL #else -# define BOOST_NO_DECLTYPE -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT // Variadic templates compiler: // http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html # if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__)) # define BOOST_HAS_VARIADIC_TMPL # else -# define BOOST_NO_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES # endif #endif // C++0x features in 4.4.n and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_AUTO_DECLARATIONS -# define BOOST_NO_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T -# define BOOST_NO_INITIALIZER_LISTS -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS #endif -#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) # define BOOST_NO_SFINAE_EXPR #endif // C++0x features in 4.5.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_LAMBDAS -# define BOOST_NO_RAW_LITERALS -# define BOOST_NO_UNICODE_LITERALS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_UNICODE_LITERALS #endif // C++0x features in 4.5.1 and later // #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.5.1 +// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1 // See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 -# define BOOST_NO_SCOPED_ENUMS +# define BOOST_NO_CXX11_SCOPED_ENUMS #endif // C++0x features in 4.6.n and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #endif +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__) +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +#endif // C++0x features not supported at all yet // -#define BOOST_NO_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DECLTYPE_N3276 #ifndef BOOST_COMPILER # define BOOST_COMPILER "GNU C++ version " __VERSION__ diff --git a/boost/boost/config/compiler/gcc_xml.hpp b/boost/boost/config/compiler/gcc_xml.hpp index 61dcedcc6f..eaed4b5af4 100644 --- a/boost/boost/config/compiler/gcc_xml.hpp +++ b/boost/boost/config/compiler/gcc_xml.hpp @@ -27,32 +27,33 @@ // C++0x features: // -# define BOOST_NO_CONSTEXPR -# define BOOST_NO_NULLPTR -# define BOOST_NO_TEMPLATE_ALIASES -# define BOOST_NO_DECLTYPE -# define BOOST_NO_DECLTYPE_N3276 -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_STATIC_ASSERT -# define BOOST_NO_VARIADIC_TEMPLATES -# define BOOST_NO_VARIADIC_MACROS -# define BOOST_NO_AUTO_DECLARATIONS -# define BOOST_NO_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_DELETED_FUNCTIONS -# define BOOST_NO_INITIALIZER_LISTS -# define BOOST_NO_SCOPED_ENUMS +# define BOOST_NO_CXX11_CONSTEXPR +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE_N3276 +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_MACROS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_SCOPED_ENUMS # define BOOST_NO_SFINAE_EXPR -# define BOOST_NO_SCOPED_ENUMS -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_LAMBDAS -# define BOOST_NO_RAW_LITERALS -# define BOOST_NO_UNICODE_LITERALS -# define BOOST_NO_NOEXCEPT -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_UNICODE_LITERALS +# define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ diff --git a/boost/boost/config/compiler/hp_acc.hpp b/boost/boost/config/compiler/hp_acc.hpp index 0d73b28752..4f5f81b3c3 100644 --- a/boost/boost/config/compiler/hp_acc.hpp +++ b/boost/boost/config/compiler/hp_acc.hpp @@ -92,30 +92,32 @@ // #if !defined(__EDG__) -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES /* See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and @@ -123,7 +125,7 @@ */ #if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE) - #define BOOST_NO_VARIADIC_MACROS + #define BOOST_NO_CXX11_VARIADIC_MACROS #endif #endif diff --git a/boost/boost/config/compiler/intel.hpp b/boost/boost/config/compiler/intel.hpp index a1704a488f..8c746c1870 100644 --- a/boost/boost/config/compiler/intel.hpp +++ b/boost/boost/config/compiler/intel.hpp @@ -199,52 +199,54 @@ template<> struct assert_intrinsic_wchar_t {}; // - ICC added static_assert in 11.0 (first version with C++0x support) // #if defined(BOOST_INTEL_STDCXX0X) -# undef BOOST_NO_STATIC_ASSERT +# undef BOOST_NO_CXX11_STATIC_ASSERT // // These pass our test cases, but aren't officially supported according to: // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ // -//# undef BOOST_NO_LAMBDAS -//# undef BOOST_NO_DECLTYPE -//# undef BOOST_NO_AUTO_DECLARATIONS -//# undef BOOST_NO_AUTO_MULTIDECLARATIONS +//# undef BOOST_NO_CXX11_LAMBDAS +//# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +//# undef BOOST_NO_CXX11_DECLTYPE +//# undef BOOST_NO_CXX11_AUTO_DECLARATIONS +//# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #endif #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200) -//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries -//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!! -# undef BOOST_NO_DELETED_FUNCTIONS -# undef BOOST_NO_DEFAULTED_FUNCTIONS -# undef BOOST_NO_LAMBDAS -# undef BOOST_NO_DECLTYPE -# undef BOOST_NO_AUTO_DECLARATIONS -# undef BOOST_NO_AUTO_MULTIDECLARATIONS +//# undef BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries +//# undef BOOST_NO_CXX11_SCOPED_ENUMS // doesn't really work!! +# undef BOOST_NO_CXX11_DELETED_FUNCTIONS +# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# undef BOOST_NO_CXX11_LAMBDAS +# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# undef BOOST_NO_CXX11_DECLTYPE +# undef BOOST_NO_CXX11_AUTO_DECLARATIONS +# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #endif // icl Version 12.1.0.233 Build 20110811 and possibly some other builds // had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed. #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200) -# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -# undef BOOST_NO_NULLPTR -# undef BOOST_NO_RVALUE_REFERENCES +# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# undef BOOST_NO_CXX11_NULLPTR +# undef BOOST_NO_CXX11_RVALUE_REFERENCES # undef BOOST_NO_SFINAE_EXPR -# undef BOOST_NO_TEMPLATE_ALIASES -# undef BOOST_NO_VARIADIC_TEMPLATES +# undef BOOST_NO_CXX11_TEMPLATE_ALIASES +# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ // continues to list scoped enum support as "Partial" -//# undef BOOST_NO_SCOPED_ENUMS +//# undef BOOST_NO_CXX11_SCOPED_ENUMS #endif #if defined(_MSC_VER) && (_MSC_VER <= 1700) // // Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode: // -# define BOOST_NO_INITIALIZER_LISTS -# define BOOST_NO_VARIADIC_TEMPLATES -# define BOOST_NO_DELETED_FUNCTIONS -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_TEMPLATE_ALIASES #endif #if (BOOST_INTEL_CXX_VERSION < 1200) diff --git a/boost/boost/config/compiler/metrowerks.hpp b/boost/boost/config/compiler/metrowerks.hpp index 02baecddee..184cb71c1f 100644 --- a/boost/boost/config/compiler/metrowerks.hpp +++ b/boost/boost/config/compiler/metrowerks.hpp @@ -90,33 +90,35 @@ #if __MWERKS__ > 0x3206 && __option(rvalue_refs) # define BOOST_HAS_RVALUE_REFS #else -# define BOOST_NO_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES #endif -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) diff --git a/boost/boost/config/compiler/mpw.hpp b/boost/boost/config/compiler/mpw.hpp index 45e1aa45c6..14adee0cc6 100644 --- a/boost/boost/config/compiler/mpw.hpp +++ b/boost/boost/config/compiler/mpw.hpp @@ -40,32 +40,34 @@ // // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG // -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX // // versions check: diff --git a/boost/boost/config/compiler/pathscale.hpp b/boost/boost/config/compiler/pathscale.hpp index 94e44726f1..3041126353 100644 --- a/boost/boost/config/compiler/pathscale.hpp +++ b/boost/boost/config/compiler/pathscale.hpp @@ -32,49 +32,49 @@ # define BOOST_HAS_EXPM1 # define BOOST_HAS_DIRENT_H # define BOOST_HAS_CLOCK_GETTIME -# define BOOST_NO_VARIADIC_TEMPLATES -# define BOOST_NO_UNICODE_LITERALS -# define BOOST_NO_TEMPLATE_ALIASES -# define BOOST_NO_STD_UNORDERED -# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_UNICODE_LITERALS +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_STATIC_ASSERT # define BOOST_NO_SFINAE_EXPR -# define BOOST_NO_SCOPED_ENUMS -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_RAW_LITERALS -# define BOOST_NO_NULLPTR -# define BOOST_NO_NUMERIC_LIMITS_LOWEST -# define BOOST_NO_NOEXCEPT -# define BOOST_NO_LAMBDAS -# define BOOST_NO_INITIALIZER_LISTS +# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS # define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_DELETED_FUNCTIONS -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_DECLTYPE -# define BOOST_NO_DECLTYPE_N3276 -# define BOOST_NO_CONSTEXPR +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE_N3276 +# define BOOST_NO_CXX11_CONSTEXPR # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -# define BOOST_NO_CHAR32_T -# define BOOST_NO_CHAR16_T -# define BOOST_NO_AUTO_MULTIDECLARATIONS -# define BOOST_NO_AUTO_DECLARATIONS -# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CHRONO +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CHRONO #endif diff --git a/boost/boost/config/compiler/pgi.hpp b/boost/boost/config/compiler/pgi.hpp index 0ae8af58e6..fa32fefb48 100644 --- a/boost/boost/config/compiler/pgi.hpp +++ b/boost/boost/config/compiler/pgi.hpp @@ -1,6 +1,6 @@ // (C) Copyright Noel Belcourt 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org for most recent version. @@ -16,10 +16,29 @@ // if no threading API is detected. // -#if __PGIC__ >= 10 +#if __PGIC__ >= 11 // options requested by configure --enable-test #define BOOST_HAS_PTHREADS +#define BOOST_HAS_THREADS +#define BOOST_HAS_PTHREAD_YIELD +#define BOOST_HAS_NRVO +#define BOOST_HAS_LONG_LONG + +// options --enable-test wants undefined +#undef BOOST_NO_STDC_NAMESPACE +#undef BOOST_NO_EXCEPTION_STD_NAMESPACE +#undef BOOST_DEDUCED_TYPENAME + +#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS + +#elif __PGIC__ >= 10 + +// options requested by configure --enable-test +#define BOOST_HAS_THREADS #define BOOST_HAS_NRVO #define BOOST_HAS_LONG_LONG @@ -30,11 +49,11 @@ #elif __PGIC__ >= 7 -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #define BOOST_NO_TWO_PHASE_NAME_LOOKUP #define BOOST_NO_SWPRINTF -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS #else @@ -46,30 +65,52 @@ // // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG // -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_NUMERIC_LIMITS +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_SWPRINTF +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX + +#define BOOST_NO_CXX11_HDR_UNORDERED_SET +#define BOOST_NO_CXX11_HDR_UNORDERED_MAP +#define BOOST_NO_CXX11_HDR_TYPEINDEX +#define BOOST_NO_CXX11_HDR_TYPE_TRAITS +#define BOOST_NO_CXX11_HDR_TUPLE +#define BOOST_NO_CXX11_HDR_THREAD +#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +#define BOOST_NO_CXX11_HDR_REGEX +#define BOOST_NO_CXX11_HDR_RATIO +#define BOOST_NO_CXX11_HDR_RANDOM +#define BOOST_NO_CXX11_HDR_MUTEX +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_HDR_FUTURE +#define BOOST_NO_CXX11_HDR_FORWARD_LIST +#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#define BOOST_NO_CXX11_HDR_CODECVT +#define BOOST_NO_CXX11_HDR_CHRONO +#define BOOST_NO_CXX11_HDR_ARRAY // // version check: diff --git a/boost/boost/config/compiler/sunpro_cc.hpp b/boost/boost/config/compiler/sunpro_cc.hpp index eaf6c741c7..65beb50198 100644 --- a/boost/boost/config/compiler/sunpro_cc.hpp +++ b/boost/boost/config/compiler/sunpro_cc.hpp @@ -99,32 +99,34 @@ // # define BOOST_HAS_LONG_LONG -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX // // Version diff --git a/boost/boost/config/compiler/vacpp.hpp b/boost/boost/config/compiler/vacpp.hpp index b0407aab71..2410d5a3ab 100644 --- a/boost/boost/config/compiler/vacpp.hpp +++ b/boost/boost/config/compiler/vacpp.hpp @@ -71,49 +71,59 @@ // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG // #if ! __IBMCPP_AUTO_TYPEDEDUCTION -# define BOOST_NO_AUTO_DECLARATIONS -# define BOOST_NO_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #endif #if ! __IBMCPP_UTF_LITERAL__ -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +#endif +#if ! __IBMCPP_CONSTEXPR +# define BOOST_NO_CXX11_CONSTEXPR #endif -#define BOOST_NO_CONSTEXPR #if ! __IBMCPP_DECLTYPE -# define BOOST_NO_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE #else # define BOOST_HAS_DECLTYPE #endif -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif #if ! __IBMCPP_EXTERN_TEMPLATE -# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE #endif #if ! __IBMCPP_VARIADIC_TEMPLATES // not enabled separately at this time -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#if ! __IBMCPP_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif +#if ! __IBMCPP_SCOPED_ENUM +# define BOOST_NO_CXX11_SCOPED_ENUMS #endif -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_NULLPTR -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #if ! __IBMCPP_STATIC_ASSERT -# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_CXX11_STATIC_ASSERT #endif -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS #if ! __IBMCPP_VARIADIC_TEMPLATES -# define BOOST_NO_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES #endif #if ! __C99_MACRO_WITH_VA_ARGS -# define BOOST_NO_VARIADIC_MACROS +# define BOOST_NO_CXX11_VARIADIC_MACROS #endif diff --git a/boost/boost/config/compiler/visualc.hpp b/boost/boost/config/compiler/visualc.hpp index 1a13f0dbd2..aa4584df8b 100644 --- a/boost/boost/config/compiler/visualc.hpp +++ b/boost/boost/config/compiler/visualc.hpp @@ -9,38 +9,54 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org for most recent version. - +// // Microsoft Visual C++ compiler setup: +// +// We need to be careful with the checks in this file, as contrary +// to popular belief there are versions with _MSC_VER with the final +// digit non-zero (mainly the MIPS cross compiler). +// +// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX. +// No other comparisons (==, >, or <=) are safe. +// #define BOOST_MSVC _MSC_VER +// +// Helper macro BOOST_MSVC_FULL_VER for use in Boost code: +// #if _MSC_FULL_VER > 100000000 # define BOOST_MSVC_FULL_VER _MSC_FULL_VER #else # define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10) #endif -// turn off the warnings before we #include anything +// Attempt to suppress VC6 warnings about the length of decorated names (obsolete): #pragma warning( disable : 4503 ) // warning: decorated name length exceeded +// +// versions check: +// we don't support Visual C++ prior to version 6: +#if _MSC_VER < 1200 +# error "Compiler not supported or configured - please reconfigure" +#endif + #if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4 # pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS # define BOOST_NO_VOID_RETURNS # define BOOST_NO_EXCEPTION_STD_NAMESPACE -# if BOOST_MSVC == 1202 +# if _MSC_VER == 1202 # define BOOST_NO_STD_TYPEINFO # endif - // disable min/max macro defines on vc6: - // #endif /// Visual Studio has no fenv.h #define BOOST_NO_FENV_H -#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0 +#if (_MSC_VER < 1310) // 130X == VC++ 7.0 # if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS @@ -72,7 +88,7 @@ # define BOOST_NO_IS_ABSTRACT # define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS // TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)? -# if (_MSC_VER > 1200) +# if (_MSC_VER >= 1300) # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # endif @@ -83,9 +99,9 @@ // it appears not to actually work: # define BOOST_NO_SWPRINTF // Our extern template tests also fail for this compiler: -# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE // Variadic macros do not exist for VC7.1 and lower -# define BOOST_NO_VARIADIC_MACROS +# define BOOST_NO_CXX11_VARIADIC_MACROS #endif #if defined(UNDER_CE) @@ -93,17 +109,16 @@ # define BOOST_NO_SWPRINTF #endif -#if _MSC_VER <= 1400 // 1400 == VC++ 8.0 +#if _MSC_VER < 1500 // 140X == VC++ 8.0 # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS #endif -#if _MSC_VER == 1500 // 1500 == VC++ 9.0 +#if _MSC_VER < 1600 // 150X == VC++ 9.0 // A bug in VC9: # define BOOST_NO_ADL_BARRIER #endif -#if (_MSC_VER <= 1600) // MSVC (including the latest checked version) has not yet completely // implemented value-initialization, as is reported: // "VC++ does not value-initialize members of derived classes without @@ -117,11 +132,10 @@ // https://connect.microsoft.com/VisualStudio/feedback/details/100744 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues // (Niels Dekker, LKEB, May 2010) -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#endif +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0 -# define BOOST_NO_INITIALIZER_LISTS +#if _MSC_VER < 1600 || !defined(BOOST_STRICT_CONFIG) // 150X == VC++ 9.0 +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST #endif #ifndef _NATIVE_WCHAR_T_DEFINED @@ -169,6 +183,16 @@ # define BOOST_NO_RTTI #endif +// +// TR1 features: +// +#if _MSC_VER >= 1700 +// # define BOOST_HAS_TR1_HASH // don't know if this is true yet. +// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet. +# define BOOST_HAS_TR1_UNORDERED_MAP +# define BOOST_HAS_TR1_UNORDERED_SET +#endif + // // C++0x features // @@ -177,38 +201,44 @@ // C++ features supported by VC++ 10 (aka 2010) // #if _MSC_VER < 1600 -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_LAMBDAS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_NULLPTR -#define BOOST_NO_DECLTYPE +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_DECLTYPE #endif // _MSC_VER < 1600 #if _MSC_VER >= 1600 -#define BOOST_HAS_STDINT_H +# define BOOST_HAS_STDINT_H #endif +// C++ features supported by VC++ 11 (aka 2012) +// +#if _MSC_VER < 1700 +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif // _MSC_VER < 1700 + // C++0x features not supported by any versions -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE_N3276 -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_NOEXCEPT -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX // // prefix and suffix headers: // @@ -219,6 +249,7 @@ # define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" #endif +#ifndef BOOST_COMPILER // TODO: // these things are mostly bogus. 1200 means version 12.0 of the compiler. The // artificial versions assigned to them only refer to the versions of some IDE @@ -230,13 +261,20 @@ // Note: these are so far off, they are not really supported # elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202 # define BOOST_COMPILER_VERSION evc4.0 -# elif _MSC_VER == 1400 +# elif _MSC_VER < 1400 + // Note: I'm not aware of any CE compiler with version 13xx +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# else +# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# endif +# elif _MSC_VER < 1500 # define BOOST_COMPILER_VERSION evc8 -# elif _MSC_VER == 1500 +# elif _MSC_VER < 1600 # define BOOST_COMPILER_VERSION evc9 -# elif _MSC_VER == 1600 +# elif _MSC_VER < 1700 # define BOOST_COMPILER_VERSION evc10 -# elif _MSC_VER == 1700 +# elif _MSC_VER < 1800 # define BOOST_COMPILER_VERSION evc11 # else # if defined(BOOST_ASSERT_CONFIG) @@ -251,31 +289,26 @@ # define BOOST_COMPILER_VERSION 5.0 # elif _MSC_VER < 1300 # define BOOST_COMPILER_VERSION 6.0 -# elif _MSC_VER == 1300 +# elif _MSC_VER < 1310 # define BOOST_COMPILER_VERSION 7.0 -# elif _MSC_VER == 1310 +# elif _MSC_VER < 1400 # define BOOST_COMPILER_VERSION 7.1 -# elif _MSC_VER == 1400 +# elif _MSC_VER < 1500 # define BOOST_COMPILER_VERSION 8.0 -# elif _MSC_VER == 1500 +# elif _MSC_VER < 1600 # define BOOST_COMPILER_VERSION 9.0 -# elif _MSC_VER == 1600 +# elif _MSC_VER < 1700 # define BOOST_COMPILER_VERSION 10.0 -# elif _MSC_VER == 1700 +# elif _MSC_VER < 1800 # define BOOST_COMPILER_VERSION 11.0 # else # define BOOST_COMPILER_VERSION _MSC_VER # endif # endif -#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// versions check: -// we don't support Visual C++ prior to version 6: -#if _MSC_VER < 1200 -#error "Compiler not supported or configured - please reconfigure" +# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) #endif + // // last known and checked version is 1700 (VC11, aka 2011): #if (_MSC_VER > 1700) diff --git a/boost/boost/config/no_tr1/complex.hpp b/boost/boost/config/no_tr1/complex.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/config/no_tr1/functional.hpp b/boost/boost/config/no_tr1/functional.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/config/no_tr1/memory.hpp b/boost/boost/config/no_tr1/memory.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/config/platform/vxworks.hpp b/boost/boost/config/platform/vxworks.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/config/stdlib/dinkumware.hpp b/boost/boost/config/stdlib/dinkumware.hpp index 1814bee2c5..3058851772 100644 --- a/boost/boost/config/stdlib/dinkumware.hpp +++ b/boost/boost/config/stdlib/dinkumware.hpp @@ -94,34 +94,44 @@ // C++0x headers implemented in 520 (as shipped by Microsoft) // #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520 -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_SMART_PTR #endif -#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_0X_HDR_TUPLE) -# define BOOST_NO_0X_HDR_TUPLE +#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE) +# define BOOST_NO_CXX11_HDR_TUPLE #endif + +// C++0x headers implemented in 540 (as shipped by Microsoft) +// +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540 +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#endif + // // C++0x headers not yet (fully) implemented: // -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_THREAD +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST #ifdef _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER diff --git a/boost/boost/config/stdlib/libcomo.hpp b/boost/boost/config/stdlib/libcomo.hpp index 341cf9708a..29490f1b13 100644 --- a/boost/boost/config/stdlib/libcomo.hpp +++ b/boost/boost/config/stdlib/libcomo.hpp @@ -35,26 +35,29 @@ // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL // // Intrinsic type_traits support. diff --git a/boost/boost/config/stdlib/libcpp.hpp b/boost/boost/config/stdlib/libcpp.hpp index 07c7043331..3d574407ec 100644 --- a/boost/boost/config/stdlib/libcpp.hpp +++ b/boost/boost/config/stdlib/libcpp.hpp @@ -20,15 +20,16 @@ #define BOOST_HAS_THREADS #ifdef _LIBCPP_HAS_NO_VARIADICS -# define BOOST_NO_0X_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TUPLE #endif // // These appear to be unusable/incomplete so far: // -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR // libc++ uses a non-standard messages_base #define BOOST_NO_STD_MESSAGES diff --git a/boost/boost/config/stdlib/libstdcpp3.hpp b/boost/boost/config/stdlib/libstdcpp3.hpp index 03cea5c0f7..c56dff225c 100644 --- a/boost/boost/config/stdlib/libstdcpp3.hpp +++ b/boost/boost/config/stdlib/libstdcpp3.hpp @@ -105,51 +105,61 @@ // C++0x headers in GCC 4.3.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #endif // C++0x headers in GCC 4.4.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_SMART_PTR #else # define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG # define BOOST_HAS_TR1_COMPLEX_OVERLOADS #endif -#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_0X_HDR_MUTEX)) -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_MUTEX +#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX)) +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_MUTEX #endif // C++0x features in GCC 4.5.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_NUMERIC_LIMITS_LOWEST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_RANDOM +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_RANDOM #endif -// C++0x features in GCC 4.5.0 and later +// C++0x features in GCC 4.6.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_NO_0X_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_TYPEINDEX +#endif + +// C++0x features in GCC 4.7.0 and later +// +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__) +// Note that although existed prior to 4.7, "stead_clock" is spelled "monotonic_clock" +// so 4.7.0 is the first truely conforming one. +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_ALLOCATOR #endif // C++0x headers not yet (fully!) implemented // -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR // --- end --- diff --git a/boost/boost/config/stdlib/modena.hpp b/boost/boost/config/stdlib/modena.hpp index 626e712b5d..b483b6e024 100644 --- a/boost/boost/config/stdlib/modena.hpp +++ b/boost/boost/config/stdlib/modena.hpp @@ -24,26 +24,29 @@ // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "Modena C++ standard library" diff --git a/boost/boost/config/stdlib/msl.hpp b/boost/boost/config/stdlib/msl.hpp index adb3d4787d..4f9a2da6ee 100644 --- a/boost/boost/config/stdlib/msl.hpp +++ b/boost/boost/config/stdlib/msl.hpp @@ -48,26 +48,29 @@ // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/boost/boost/config/stdlib/roguewave.hpp b/boost/boost/config/stdlib/roguewave.hpp index 95ac36c6b8..cb80f57082 100644 --- a/boost/boost/config/stdlib/roguewave.hpp +++ b/boost/boost/config/stdlib/roguewave.hpp @@ -155,29 +155,32 @@ #endif #if _RWSTD_VER < 0x05000000 -# define BOOST_NO_0X_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_ARRAY #endif // type_traits header is incomplete: -# define BOOST_NO_0X_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS // // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL diff --git a/boost/boost/config/stdlib/sgi.hpp b/boost/boost/config/stdlib/sgi.hpp index c8d77d55d4..ae9b6ad908 100644 --- a/boost/boost/config/stdlib/sgi.hpp +++ b/boost/boost/config/stdlib/sgi.hpp @@ -118,26 +118,29 @@ // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "SGI standard library" diff --git a/boost/boost/config/stdlib/stlport.hpp b/boost/boost/config/stdlib/stlport.hpp index d306999221..bcc30b99e7 100644 --- a/boost/boost/config/stdlib/stlport.hpp +++ b/boost/boost/config/stdlib/stlport.hpp @@ -71,10 +71,6 @@ # endif #endif -#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520)) -# define BOOST_NO_STD_UNORDERED -#endif - #if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520) # define BOOST_HAS_TR1_UNORDERED_SET # define BOOST_HAS_TR1_UNORDERED_MAP @@ -212,26 +208,29 @@ namespace boost { using std::min; using std::max; } // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/boost/boost/config/stdlib/vacpp.hpp b/boost/boost/config/stdlib/vacpp.hpp index 32a1fc08b7..9d16946552 100644 --- a/boost/boost/config/stdlib/vacpp.hpp +++ b/boost/boost/config/stdlib/vacpp.hpp @@ -24,26 +24,29 @@ // C++0x headers not yet implemented // -# define BOOST_NO_0X_HDR_ARRAY -# define BOOST_NO_0X_HDR_CHRONO -# define BOOST_NO_0X_HDR_CODECVT -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -# define BOOST_NO_0X_HDR_FORWARD_LIST -# define BOOST_NO_0X_HDR_FUTURE -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_MUTEX -# define BOOST_NO_0X_HDR_RANDOM -# define BOOST_NO_0X_HDR_RATIO -# define BOOST_NO_0X_HDR_REGEX -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -# define BOOST_NO_0X_HDR_THREAD -# define BOOST_NO_0X_HDR_TUPLE -# define BOOST_NO_0X_HDR_TYPE_TRAITS -# define BOOST_NO_0X_HDR_TYPEINDEX -# define BOOST_NO_STD_UNORDERED // deprecated; see following -# define BOOST_NO_0X_HDR_UNORDERED_MAP -# define BOOST_NO_0X_HDR_UNORDERED_SET -# define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "Visual Age default standard library" diff --git a/boost/boost/config/suffix.hpp b/boost/boost/config/suffix.hpp index 72a0dc9573..8ee88d90f1 100644 --- a/boost/boost/config/suffix.hpp +++ b/boost/boost/config/suffix.hpp @@ -1,4 +1,5 @@ // Boost config.hpp configuration header file ------------------------------// +// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file // Copyright (c) 2001-2003 John Maddock // Copyright (c) 2001 Darin Adler @@ -103,13 +104,6 @@ # define BOOST_NO_LONG_LONG_NUMERIC_LIMITS #endif -// -// Normalize BOOST_NO_STATIC_ASSERT and (depricated) BOOST_HAS_STATIC_ASSERT: -// -#if !defined(BOOST_NO_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT) -# define BOOST_HAS_STATIC_ASSERT -#endif - // // if there is no __int64 then there is no specialisation // for numeric_limits<__int64> either: @@ -334,38 +328,6 @@ # define BOOST_HASH_MAP_HEADER #endif -// -// Set BOOST_NO_INITIALIZER_LISTS if there is no library support. -// - -#if defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS) -# define BOOST_NO_INITIALIZER_LISTS -#endif -#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -#endif - -// -// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined -// -#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS) -#define BOOST_HAS_RVALUE_REFS -#endif - -// -// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined -// -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL) -#define BOOST_HAS_VARIADIC_TMPL -#endif - -// -// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined -// -#if !defined(BOOST_NO_DECLTYPE_N3276) && defined(BOOST_NO_DECLTYPE) -#define BOOST_NO_DECLTYPE_N3276 -#endif - // BOOST_HAS_ABI_HEADERS // This macro gets set if we have headers that fix the ABI, // and prevent ODR violations when linking to external libraries: @@ -527,6 +489,18 @@ namespace boost{ # endif } #endif +// same again for __int128: +#if defined(BOOST_HAS_INT128) && defined(__cplusplus) +namespace boost{ +# ifdef __GNUC__ + __extension__ typedef __int128 int128_type; + __extension__ typedef unsigned __int128 uint128_type; +# else + typedef __int128 int128_type; + typedef unsigned __int128 uint128_type; +# endif +} +#endif // BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// // @@ -635,20 +609,6 @@ namespace std{ using ::type_info; } #define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y) #define BOOST_DO_JOIN2( X, Y ) X##Y -// -// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR -// These aid the transition to C++11 while still supporting C++03 compilers -// -#ifdef BOOST_NO_NOEXCEPT -# define BOOST_NOEXCEPT -# define BOOST_NOEXCEPT_IF(Predicate) -# define BOOST_NOEXCEPT_EXPR(Expression) false -#else -# define BOOST_NOEXCEPT noexcept -# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate)) -# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) -#endif - // // Set some default values for compiler/library/platform names. // These are for debugging config setup only: @@ -675,19 +635,6 @@ namespace std{ using ::type_info; } # define BOOST_GPU_ENABLED # endif -// -// constexpr workarounds -// -#if defined(BOOST_NO_CONSTEXPR) -#define BOOST_CONSTEXPR -#define BOOST_CONSTEXPR_OR_CONST const -#else -#define BOOST_CONSTEXPR constexpr -#define BOOST_CONSTEXPR_OR_CONST constexpr -#endif - -#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST - // BOOST_FORCEINLINE ---------------------------------------------// // Macro to use in place of 'inline' to force a function to be inline #if !defined(BOOST_FORCEINLINE) @@ -700,5 +647,274 @@ namespace std{ using ::type_info; } # endif #endif +// +// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined +// +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) +#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE #endif +// -------------------- Deprecated macros for 1.50 --------------------------- +// These will go away in a future release + +// Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP +// instead of BOOST_NO_STD_UNORDERED +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET) +# ifndef BOOST_NO_CXX11_STD_UNORDERED +# define BOOST_NO_CXX11_STD_UNORDERED +# endif +#endif + +// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS +#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS) +# define BOOST_NO_INITIALIZER_LISTS +#endif + +// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY +#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_BOOST_NO_0X_HDR_ARRAY) +# define BOOST_NO_0X_HDR_ARRAY +#endif +// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO +#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO) +# define BOOST_NO_0X_HDR_CHRONO +#endif +// Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT +#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT) +# define BOOST_NO_0X_HDR_CODECVT +#endif +// Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE +#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) +# define BOOST_NO_0X_HDR_CONDITION_VARIABLE +#endif +// Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST +#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST) +# define BOOST_NO_0X_HDR_FORWARD_LIST +#endif +// Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE +#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE) +# define BOOST_NO_0X_HDR_FUTURE +#endif + +// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST +// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS +#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST +# define BOOST_NO_0X_HDR_INITIALIZER_LIST +# endif +# ifndef BOOST_NO_INITIALIZER_LISTS +# define BOOST_NO_INITIALIZER_LISTS +# endif +#endif + +// Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX +#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX) +# define BOOST_NO_0X_HDR_MUTEX +#endif +// Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM +#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM) +# define BOOST_NO_0X_HDR_RANDOM +#endif +// Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO +#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO) +# define BOOST_NO_0X_HDR_RATIO +#endif +// Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX +#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX) +# define BOOST_NO_0X_HDR_REGEX +#endif +// Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR +#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR) +# define BOOST_NO_0X_HDR_SYSTEM_ERROR +#endif +// Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD +#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD) +# define BOOST_NO_0X_HDR_THREAD +#endif +// Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE +#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE) +# define BOOST_NO_0X_HDR_TUPLE +#endif +// Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS +#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS) +# define BOOST_NO_0X_HDR_TYPE_TRAITS +#endif +// Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX +#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX) +# define BOOST_NO_0X_HDR_TYPEINDEX +#endif +// Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP) +# define BOOST_NO_0X_HDR_UNORDERED_MAP +#endif +// Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET) +# define BOOST_NO_0X_HDR_UNORDERED_SET +#endif + +// ------------------ End of deprecated macros for 1.50 --------------------------- + +// -------------------- Deprecated macros for 1.51 --------------------------- +// These will go away in a future release + +// Use BOOST_NO_CXX11_AUTO_DECLARATIONS instead of BOOST_NO_AUTO_DECLARATIONS +#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS) +# define BOOST_NO_AUTO_DECLARATIONS +#endif +// Use BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of BOOST_NO_AUTO_MULTIDECLARATIONS +#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS) +# define BOOST_NO_AUTO_MULTIDECLARATIONS +#endif +// Use BOOST_NO_CXX11_CHAR16_T instead of BOOST_NO_CHAR16_T +#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T) +# define BOOST_NO_CHAR16_T +#endif +// Use BOOST_NO_CXX11_CHAR32_T instead of BOOST_NO_CHAR32_T +#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T) +# define BOOST_NO_CHAR32_T +#endif +// Use BOOST_NO_CXX11_TEMPLATE_ALIASES instead of BOOST_NO_TEMPLATE_ALIASES +#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES) +# define BOOST_NO_TEMPLATE_ALIASES +#endif +// Use BOOST_NO_CXX11_CONSTEXPR instead of BOOST_NO_CONSTEXPR +#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR) +# define BOOST_NO_CONSTEXPR +#endif +// Use BOOST_NO_CXX11_DECLTYPE_N3276 instead of BOOST_NO_DECLTYPE_N3276 +#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276) +# define BOOST_NO_DECLTYPE_N3276 +#endif +// Use BOOST_NO_CXX11_DECLTYPE instead of BOOST_NO_DECLTYPE +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE) +# define BOOST_NO_DECLTYPE +#endif +// Use BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS +#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS) +# define BOOST_NO_DEFAULTED_FUNCTIONS +#endif +// Use BOOST_NO_CXX11_DELETED_FUNCTIONS instead of BOOST_NO_DELETED_FUNCTIONS +#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS) +# define BOOST_NO_DELETED_FUNCTIONS +#endif +// Use BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS) +# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#endif +// Use BOOST_NO_CXX11_EXTERN_TEMPLATE instead of BOOST_NO_EXTERN_TEMPLATE +#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE) +# define BOOST_NO_EXTERN_TEMPLATE +#endif +// Use BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS) +# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +// Use BOOST_NO_CXX11_LAMBDAS instead of BOOST_NO_LAMBDAS +#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS) +# define BOOST_NO_LAMBDAS +#endif +// Use BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS +#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS) +# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif +// Use BOOST_NO_CXX11_NOEXCEPT instead of BOOST_NO_NOEXCEPT +#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT) +# define BOOST_NO_NOEXCEPT +#endif +// Use BOOST_NO_CXX11_NULLPTR instead of BOOST_NO_NULLPTR +#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR) +# define BOOST_NO_NULLPTR +#endif +// Use BOOST_NO_CXX11_RAW_LITERALS instead of BOOST_NO_RAW_LITERALS +#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS) +# define BOOST_NO_RAW_LITERALS +#endif +// Use BOOST_NO_CXX11_RVALUE_REFERENCES instead of BOOST_NO_RVALUE_REFERENCES +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES) +# define BOOST_NO_RVALUE_REFERENCES +#endif +// Use BOOST_NO_CXX11_SCOPED_ENUMS instead of BOOST_NO_SCOPED_ENUMS +#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS) +# define BOOST_NO_SCOPED_ENUMS +#endif +// Use BOOST_NO_CXX11_STATIC_ASSERT instead of BOOST_NO_STATIC_ASSERT +#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT) +# define BOOST_NO_STATIC_ASSERT +#endif +// Use BOOST_NO_CXX11_STD_UNORDERED instead of BOOST_NO_STD_UNORDERED +#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED) +# define BOOST_NO_STD_UNORDERED +#endif +// Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS +#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS) +# define BOOST_NO_UNICODE_LITERALS +#endif +// Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX) +# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#endif +// Use BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of BOOST_NO_VARIADIC_TEMPLATES +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES) +# define BOOST_NO_VARIADIC_TEMPLATES +#endif +// Use BOOST_NO_CXX11_VARIADIC_MACROS instead of BOOST_NO_VARIADIC_MACROS +#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS) +# define BOOST_NO_VARIADIC_MACROS +#endif +// Use BOOST_NO_CXX11_NUMERIC_LIMITS instead of BOOST_NO_NUMERIC_LIMITS_LOWEST +#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST) +# define BOOST_NO_NUMERIC_LIMITS_LOWEST +#endif +// ------------------ End of deprecated macros for 1.51 --------------------------- + + + +// +// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR +// These aid the transition to C++11 while still supporting C++03 compilers +// +#ifdef BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NOEXCEPT +# define BOOST_NOEXCEPT_IF(Predicate) +# define BOOST_NOEXCEPT_EXPR(Expression) false +#else +# define BOOST_NOEXCEPT noexcept +# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate)) +# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) +#endif + +// +// constexpr workarounds +// +#if defined(BOOST_NO_CXX11_CONSTEXPR) +#define BOOST_CONSTEXPR +#define BOOST_CONSTEXPR_OR_CONST const +#else +#define BOOST_CONSTEXPR constexpr +#define BOOST_CONSTEXPR_OR_CONST constexpr +#endif + +#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST + +// +// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined +// +#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT) +# define BOOST_HAS_STATIC_ASSERT +#endif + +// +// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined +// +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS) +#define BOOST_HAS_RVALUE_REFS +#endif + +// +// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined +// +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL) +#define BOOST_HAS_VARIADIC_TMPL +#endif + + +#endif diff --git a/boost/boost/container/container_fwd.hpp b/boost/boost/container/container_fwd.hpp index da325e4461..bdefd81e00 100644 --- a/boost/boost/container/container_fwd.hpp +++ b/boost/boost/container/container_fwd.hpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////////////////////////////////// // -// (C) Copyright Ion Gaztanaga 2005-2011. Distributed under the Boost +// (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // @@ -21,8 +21,8 @@ /// @cond -namespace boost{ -namespace intrusive{ +namespace boost{ +namespace intrusive{ //Create namespace to avoid compilation errors }} @@ -32,9 +32,9 @@ namespace bi = boost::intrusive; }}} -#include -#include -#include +#include +#include +#include #include #include @@ -49,109 +49,105 @@ namespace container { //vector class template > + ,class Allocator = std::allocator > class vector; //vector class template > + ,class Allocator = std::allocator > class stable_vector; //vector class template > + ,class Allocator = std::allocator > class deque; //list class template > + ,class Allocator = std::allocator > class list; //slist class template > + ,class Allocator = std::allocator > class slist; //set class -template - ,class A = std::allocator > +template + ,class Allocator = std::allocator > class set; //multiset class -template - ,class A = std::allocator > +template + ,class Allocator = std::allocator > class multiset; //map class template - ,class A = std::allocator > > + ,class Compare = std::less + ,class Allocator = std::allocator > > class map; //multimap class template - ,class A = std::allocator > > + ,class Compare = std::less + ,class Allocator = std::allocator > > class multimap; //flat_set class -template - ,class A = std::allocator > +template + ,class Allocator = std::allocator > class flat_set; //flat_multiset class -template - ,class A = std::allocator > +template + ,class Allocator = std::allocator > class flat_multiset; //flat_map class template - ,class A = std::allocator > > + ,class Compare = std::less + ,class Allocator = std::allocator > > class flat_map; //flat_multimap class template - ,class A = std::allocator > > + ,class Compare = std::less + ,class Allocator = std::allocator > > class flat_multimap; //basic_string class template - ,class A = std::allocator > + ,class Allocator = std::allocator > class basic_string; //! Type used to tag that the input range is //! guaranteed to be ordered -struct ordered_range_impl_t {}; +struct ordered_range_t +{}; //! Type used to tag that the input range is //! guaranteed to be ordered and unique -struct ordered_unique_range_impl_t{}; - -/// @cond - -typedef ordered_range_impl_t * ordered_range_t; -typedef ordered_unique_range_impl_t *ordered_unique_range_t; - -/// @endcond +struct ordered_unique_range_t + : public ordered_range_t +{}; //! Value used to tag that the input range is //! guaranteed to be ordered -static const ordered_range_t ordered_range = 0; +static const ordered_range_t ordered_range = ordered_range_t(); //! Value used to tag that the input range is //! guaranteed to be ordered and unique -static const ordered_unique_range_t ordered_unique_range = 0; +static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t(); /// @cond diff --git a/boost/boost/detail/call_traits.hpp b/boost/boost/detail/call_traits.hpp index 6ad646ec60..36dea0003a 100644 --- a/boost/boost/detail/call_traits.hpp +++ b/boost/boost/detail/call_traits.hpp @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -43,20 +44,26 @@ struct ct_imp2 typedef const T param_type; }; -template +template struct ct_imp { typedef const T& param_type; }; -template -struct ct_imp +template +struct ct_imp { typedef typename ct_imp2::param_type param_type; }; -template -struct ct_imp +template +struct ct_imp +{ + typedef typename ct_imp2::param_type param_type; +}; + +template +struct ct_imp { typedef const T param_type; }; @@ -79,7 +86,8 @@ public: typedef typename boost::detail::ct_imp< T, ::boost::is_pointer::value, - ::boost::is_arithmetic::value + ::boost::is_arithmetic::value, + ::boost::is_enum::value >::param_type param_type; }; diff --git a/boost/boost/detail/container_fwd.hpp b/boost/boost/detail/container_fwd.hpp index 7df7ccbb94..ef17498063 100644 --- a/boost/boost/detail/container_fwd.hpp +++ b/boost/boost/detail/container_fwd.hpp @@ -21,10 +21,17 @@ // Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to // // forward declare standard containers. // // // +// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it // +// normally doesn't. // +// // +// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD. // +// // //////////////////////////////////////////////////////////////////////////////// #if !defined(BOOST_DETAIL_NO_CONTAINER_FWD) -# if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +# if defined(BOOST_DETAIL_CONTAINER_FWD) + // Force forward declarations. +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) // STLport # define BOOST_DETAIL_NO_CONTAINER_FWD # elif defined(__LIBCOMO__) @@ -76,11 +83,6 @@ # endif #endif -// BOOST_DETAIL_TEST_* macros are for testing only -// and shouldn't be relied upon. But you can use -// BOOST_DETAIL_NO_CONTAINER_FWD to prevent forward -// declaration of containers. - #if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY) #if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ @@ -118,6 +120,7 @@ namespace std template class basic_string; #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) + template struct string_char_traits; #else template struct char_traits; diff --git a/boost/boost/detail/endian.hpp b/boost/boost/detail/endian.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/detail/interlocked.hpp b/boost/boost/detail/interlocked.hpp index 1802e3411d..75e5a3061a 100644 --- a/boost/boost/detail/interlocked.hpp +++ b/boost/boost/detail/interlocked.hpp @@ -33,6 +33,21 @@ #elif defined(_WIN32_WCE) +#if _WIN32_WCE >= 0x600 + +extern "C" long __cdecl _InterlockedIncrement( long volatile * ); +extern "C" long __cdecl _InterlockedDecrement( long volatile * ); +extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); +extern "C" long __cdecl _InterlockedExchange( long volatile *, long ); +extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long ); + +# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement +# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange +# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange +# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd + +#else // under Windows CE we still have old-style Interlocked* functions extern "C" long __cdecl InterlockedIncrement( long* ); @@ -47,6 +62,8 @@ extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); # define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange # define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd +#endif + # define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) # define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ diff --git a/boost/boost/detail/is_function_ref_tester.hpp b/boost/boost/detail/is_function_ref_tester.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/detail/lcast_precision.hpp b/boost/boost/detail/lcast_precision.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/detail/sp_typeinfo.hpp b/boost/boost/detail/sp_typeinfo.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/exception/detail/attribute_noreturn.hpp b/boost/boost/exception/detail/attribute_noreturn.hpp index f6a0b5903e..ae9f031efe 100644 --- a/boost/boost/exception/detail/attribute_noreturn.hpp +++ b/boost/boost/exception/detail/attribute_noreturn.hpp @@ -9,7 +9,7 @@ #if defined(_MSC_VER) #define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn) #elif defined(__GNUC__) -#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn)) +#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__)) #else #define BOOST_ATTRIBUTE_NORETURN #endif diff --git a/boost/boost/exception/exception.hpp b/boost/boost/exception/exception.hpp old mode 100755 new mode 100644 index 9cdfd5c6e8..42d2787128 --- a/boost/boost/exception/exception.hpp +++ b/boost/boost/exception/exception.hpp @@ -310,6 +310,11 @@ boost namespace exception_detail { +#if defined(__GNUC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) +# pragma GCC visibility push (default) +# endif +#endif template struct error_info_injector: @@ -326,6 +331,11 @@ boost { } }; +#if defined(__GNUC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) +# pragma GCC visibility pop +# endif +#endif struct large_size { char c[256]; }; large_size dispatch_boost_exception( exception const * ); @@ -373,6 +383,11 @@ boost namespace exception_detail { +#if defined(__GNUC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) +# pragma GCC visibility push (default) +# endif +#endif class clone_base { @@ -386,6 +401,11 @@ boost { } }; +#if defined(__GNUC__) +# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) +# pragma GCC visibility pop +# endif +#endif inline void @@ -410,8 +430,15 @@ boost class clone_impl: public T, - public clone_base + public virtual clone_base { + struct clone_tag { }; + clone_impl( clone_impl const & x, clone_tag ): + T(x) + { + copy_boost_exception(this,&x); + } + public: explicit @@ -430,7 +457,7 @@ boost clone_base const * clone() const { - return new clone_impl(*this); + return new clone_impl(*this,clone_tag()); } void diff --git a/boost/boost/function/function_template.hpp b/boost/boost/function/function_template.hpp index bf139a0957..73ed72ef40 100644 --- a/boost/boost/function/function_template.hpp +++ b/boost/boost/function/function_template.hpp @@ -677,7 +677,7 @@ namespace boost { vtable_type* get_vtable() const { return reinterpret_cast( - reinterpret_cast(vtable) & ~static_cast(0x01)); + reinterpret_cast(vtable) & ~static_cast(0x01)); } struct clear_type {}; @@ -748,7 +748,14 @@ namespace boost { { this->assign_to_own(f); } - + +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION&& f) : function_base() + { + this->move_assign(f); + } +#endif + ~BOOST_FUNCTION_FUNCTION() { clear(); } result_type operator()(BOOST_FUNCTION_PARMS) const @@ -830,6 +837,26 @@ namespace boost { BOOST_CATCH_END return *this; } + +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + // Move assignment from another BOOST_FUNCTION_FUNCTION + BOOST_FUNCTION_FUNCTION& operator=(BOOST_FUNCTION_FUNCTION&& f) + { + + if (&f == this) + return *this; + + this->clear(); + BOOST_TRY { + this->move_assign(f); + } BOOST_CATCH (...) { + vtable = 0; + BOOST_RETHROW; + } + BOOST_CATCH_END + return *this; + } +#endif void swap(BOOST_FUNCTION_FUNCTION& other) { @@ -1063,12 +1090,26 @@ public: function(const base_type& f) : base_type(static_cast(f)){} +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + // Move constructors + function(self_type&& f): base_type(static_cast(f)){} + function(base_type&& f): base_type(static_cast(f)){} +#endif + self_type& operator=(const self_type& f) { self_type(f).swap(*this); return *this; } +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + self_type& operator=(self_type&& f) + { + self_type(static_cast(f)).swap(*this); + return *this; + } +#endif + template #ifndef BOOST_NO_SFINAE typename enable_if_c< @@ -1097,6 +1138,14 @@ public: self_type(f).swap(*this); return *this; } + +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + self_type& operator=(base_type&& f) + { + self_type(static_cast(f)).swap(*this); + return *this; + } +#endif }; #undef BOOST_FUNCTION_PARTIAL_SPEC diff --git a/boost/boost/functional/hash/detail/float_functions.hpp b/boost/boost/functional/hash/detail/float_functions.hpp index ae03ff091e..4b8374d471 100644 --- a/boost/boost/functional/hash/detail/float_functions.hpp +++ b/boost/boost/functional/hash/detail/float_functions.hpp @@ -13,6 +13,94 @@ # pragma once #endif +// Set BOOST_HASH_CONFORMANT_FLOATS to 1 for libraries known to have +// sufficiently good floating point support to not require any +// workarounds. +// +// When set to 0, the library tries to automatically +// use the best available implementation. This normally works well, but +// breaks when ambiguities are created by odd namespacing of the functions. +// +// Note that if this is set to 0, the library should still take full +// advantage of the platform's floating point support. + +#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif defined(__LIBCOMO__) +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) +// Rogue Wave library: +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif defined(_LIBCPP_VERSION) +// libc++ +# define BOOST_HASH_CONFORMANT_FLOATS 1 +#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) +// GNU libstdc++ 3 +# if defined(__GNUC__) && __GNUC__ >= 4 +# define BOOST_HASH_CONFORMANT_FLOATS 1 +# else +# define BOOST_HASH_CONFORMANT_FLOATS 0 +# endif +#elif defined(__STL_CONFIG_H) +// generic SGI STL +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif defined(__MSL_CPP__) +// MSL standard lib: +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif defined(__IBMCPP__) +// VACPP std lib (probably conformant for much earlier version). +# if __IBMCPP__ >= 1210 +# define BOOST_HASH_CONFORMANT_FLOATS 1 +# else +# define BOOST_HASH_CONFORMANT_FLOATS 0 +# endif +#elif defined(MSIPL_COMPILE_H) +// Modena C++ standard library +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) +// Dinkumware Library (this has to appear after any possible replacement libraries): +# if _CPPLIB_VER >= 405 +# define BOOST_HASH_CONFORMANT_FLOATS 1 +# else +# define BOOST_HASH_CONFORMANT_FLOATS 0 +# endif +#else +# define BOOST_HASH_CONFORMANT_FLOATS 0 +#endif + +#if BOOST_HASH_CONFORMANT_FLOATS + +// The standard library is known to be compliant, so don't use the +// configuration mechanism. + +namespace boost { + namespace hash_detail { + template + struct call_ldexp { + typedef Float float_type; + inline Float operator()(Float x, int y) const { + return std::ldexp(x, y); + } + }; + + template + struct call_frexp { + typedef Float float_type; + inline Float operator()(Float x, int* y) const { + return std::frexp(x, y); + } + }; + + template + struct select_hash_type + { + typedef Float type; + }; + } +} + +#else // BOOST_HASH_CONFORMANT_FLOATS == 0 + // The C++ standard requires that the C float functions are overloarded // for float, double and long double in the std namespace, but some of the older // library implementations don't support this. On some that don't, the C99 @@ -243,4 +331,6 @@ namespace boost } } +#endif // BOOST_HASH_CONFORMANT_FLOATS + #endif diff --git a/boost/boost/functional/hash/detail/hash_float.hpp b/boost/boost/functional/hash/detail/hash_float.hpp index ea1bc25f48..a98cd700f8 100644 --- a/boost/boost/functional/hash/detail/hash_float.hpp +++ b/boost/boost/functional/hash/detail/hash_float.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2009 Daniel James. +// Copyright 2005-2012 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -13,21 +13,19 @@ #include #include #include +#include #include #include #include +#include +#include -// Include hash implementation for the current platform. - -// Cygwn -#if defined(__CYGWIN__) -# if defined(__i386__) || defined(_M_IX86) -# include -# else -# include -# endif -#else -# include +#if defined(BOOST_MSVC) +#pragma warning(push) +#if BOOST_MSVC >= 1400 +#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does + // not satisfy test. Loop body not executed +#endif #endif // Can we use fpclassify? @@ -50,6 +48,159 @@ # define BOOST_HASH_USE_FPCLASSIFY 0 #endif +namespace boost +{ + namespace hash_detail + { + inline void hash_float_combine(std::size_t& seed, std::size_t value) + { + seed ^= value + (seed<<6) + (seed>>2); + } + + //////////////////////////////////////////////////////////////////////// + // Binary hash function + // + // Only used for floats with known iec559 floats, and certain values in + // numeric_limits + + inline std::size_t hash_binary(char* ptr, std::size_t length) + { + std::size_t seed = 0; + + if (length >= sizeof(std::size_t)) { + seed = *(std::size_t*) ptr; + length -= sizeof(std::size_t); + ptr += sizeof(std::size_t); + + while(length >= sizeof(std::size_t)) { + std::size_t buffer = 0; + std::memcpy(&buffer, ptr, sizeof(std::size_t)); + hash_float_combine(seed, buffer); + length -= sizeof(std::size_t); + ptr += sizeof(std::size_t); + } + } + + if (length > 0) { + std::size_t buffer = 0; + std::memcpy(&buffer, ptr, length); + hash_float_combine(seed, buffer); + } + + return seed; + } + + template + inline std::size_t float_hash_impl(Float v, + BOOST_DEDUCED_TYPENAME boost::enable_if_c< + std::numeric_limits::is_iec559 && + std::numeric_limits::digits == 24 && + std::numeric_limits::radix == 2 && + std::numeric_limits::max_exponent == 128, + int>::type + ) + { + return hash_binary((char*) &v, 4); + } + + + template + inline std::size_t float_hash_impl(Float v, + BOOST_DEDUCED_TYPENAME boost::enable_if_c< + std::numeric_limits::is_iec559 && + std::numeric_limits::digits == 53 && + std::numeric_limits::radix == 2 && + std::numeric_limits::max_exponent == 1024, + int>::type + ) + { + return hash_binary((char*) &v, 8); + } + + template + inline std::size_t float_hash_impl(Float v, + BOOST_DEDUCED_TYPENAME boost::enable_if_c< + std::numeric_limits::is_iec559 && + std::numeric_limits::digits == 64 && + std::numeric_limits::radix == 2 && + std::numeric_limits::max_exponent == 16384, + int>::type + ) + { + return hash_binary((char*) &v, 10); + } + + template + inline std::size_t float_hash_impl(Float v, + BOOST_DEDUCED_TYPENAME boost::enable_if_c< + std::numeric_limits::is_iec559 && + std::numeric_limits::digits == 113 && + std::numeric_limits::radix == 2 && + std::numeric_limits::max_exponent == 16384, + int>::type + ) + { + return hash_binary((char*) &v, 16); + } + + //////////////////////////////////////////////////////////////////////// + // Portable hash function + // + // Used as a fallback when the binary hash function isn't supported. + + template + inline std::size_t float_hash_impl2(T v) + { + boost::hash_detail::call_frexp frexp; + boost::hash_detail::call_ldexp ldexp; + + int exp = 0; + + v = frexp(v, &exp); + + // A postive value is easier to hash, so combine the + // sign with the exponent and use the absolute value. + if(v < 0) { + v = -v; + exp += limits::max_exponent - + limits::min_exponent; + } + + v = ldexp(v, limits::digits); + std::size_t seed = static_cast(v); + v -= static_cast(seed); + + // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; + std::size_t const length + = (limits::digits * + boost::static_log2::radix>::value + + limits::digits - 1) + / limits::digits; + + for(std::size_t i = 0; i != length; ++i) + { + v = ldexp(v, limits::digits); + std::size_t part = static_cast(v); + v -= static_cast(part); + hash_float_combine(seed, part); + } + + hash_float_combine(seed, exp); + + return seed; + } + +#if !defined(BOOST_HASH_DETAIL_TEST_WITHOUT_GENERIC) + template + inline std::size_t float_hash_impl(T v, ...) + { + typedef BOOST_DEDUCED_TYPENAME select_hash_type::type type; + return float_hash_impl2(static_cast(v)); + } +#endif + } +} + #if BOOST_HASH_USE_FPCLASSIFY #include @@ -61,8 +212,15 @@ namespace boost template inline std::size_t float_hash_value(T v) { +#if defined(fpclassify) + switch (fpclassify(v)) +#elif BOOST_HASH_CONFORMANT_FLOATS + switch (std::fpclassify(v)) +#else using namespace std; - switch (fpclassify(v)) { + switch (fpclassify(v)) +#endif + { case FP_ZERO: return 0; case FP_INFINITE: @@ -71,7 +229,7 @@ namespace boost return (std::size_t)(-3); case FP_NORMAL: case FP_SUBNORMAL: - return float_hash_impl(v); + return float_hash_impl(v, 0); default: BOOST_ASSERT(0); return 0; @@ -86,10 +244,24 @@ namespace boost { namespace hash_detail { + template + inline bool is_zero(T v) + { +#if !defined(__GNUC__) + return v == 0; +#else + // GCC's '-Wfloat-equal' will complain about comparing + // v to 0, but because it disables warnings for system + // headers it won't complain if you use std::equal_to to + // compare with 0. Resulting in this silliness: + return std::equal_to()(v, 0); +#endif + } + template inline std::size_t float_hash_value(T v) { - return v == 0 ? 0 : float_hash_impl(v); + return boost::hash_detail::is_zero(v) ? 0 : float_hash_impl(v, 0); } } } @@ -98,4 +270,8 @@ namespace boost #undef BOOST_HASH_USE_FPCLASSIFY +#if defined(BOOST_MSVC) +#pragma warning(pop) +#endif + #endif diff --git a/boost/boost/functional/hash/detail/hash_float_generic.hpp b/boost/boost/functional/hash/detail/hash_float_generic.hpp deleted file mode 100644 index 1278c2f626..0000000000 --- a/boost/boost/functional/hash/detail/hash_float_generic.hpp +++ /dev/null @@ -1,91 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// A general purpose hash function for non-zero floating point values. - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_GENERIC_HEADER - -#include -#include -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) -#if BOOST_MSVC >= 1400 -#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does - // not satisfy test. Loop body not executed -#endif -#endif - -namespace boost -{ - namespace hash_detail - { - inline void hash_float_combine(std::size_t& seed, std::size_t value) - { - seed ^= value + (seed<<6) + (seed>>2); - } - - template - inline std::size_t float_hash_impl2(T v) - { - boost::hash_detail::call_frexp frexp; - boost::hash_detail::call_ldexp ldexp; - - int exp = 0; - - v = frexp(v, &exp); - - // A postive value is easier to hash, so combine the - // sign with the exponent and use the absolute value. - if(v < 0) { - v = -v; - exp += limits::max_exponent - - limits::min_exponent; - } - - v = ldexp(v, limits::digits); - std::size_t seed = static_cast(v); - v -= static_cast(seed); - - // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; - std::size_t const length - = (limits::digits * - boost::static_log2::radix>::value - + limits::digits - 1) - / limits::digits; - - for(std::size_t i = 0; i != length; ++i) - { - v = ldexp(v, limits::digits); - std::size_t part = static_cast(v); - v -= static_cast(part); - hash_float_combine(seed, part); - } - - hash_float_combine(seed, exp); - - return seed; - } - - template - inline std::size_t float_hash_impl(T v) - { - typedef BOOST_DEDUCED_TYPENAME select_hash_type::type type; - return float_hash_impl2(static_cast(v)); - } - } -} - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif diff --git a/boost/boost/functional/hash/detail/hash_float_x86.hpp b/boost/boost/functional/hash/detail/hash_float_x86.hpp deleted file mode 100644 index b39bb0d081..0000000000 --- a/boost/boost/functional/hash/detail/hash_float_x86.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// A non-portable hash function form non-zero floats on x86. -// -// Even if you're on an x86 platform, this might not work if their floating -// point isn't set up as this expects. So this should only be used if it's -// absolutely certain that it will work. - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_X86_HEADER - -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -namespace boost -{ - namespace hash_detail - { - inline void hash_float_combine(std::size_t& seed, std::size_t value) - { - seed ^= value + (seed<<6) + (seed>>2); - } - - inline std::size_t float_hash_impl(float v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr; - return seed; - } - - inline std::size_t float_hash_impl(double v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr++; - hash_float_combine(seed, *ptr); - return seed; - } - - inline std::size_t float_hash_impl(long double v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr++; - hash_float_combine(seed, *ptr++); - hash_float_combine(seed, *(boost::uint16_t*)ptr); - return seed; - } - } -} - -#endif diff --git a/boost/boost/functional/hash/extensions.hpp b/boost/boost/functional/hash/extensions.hpp index 3c587a3bf5..998c08e46d 100644 --- a/boost/boost/functional/hash/extensions.hpp +++ b/boost/boost/functional/hash/extensions.hpp @@ -15,6 +15,22 @@ #include #include +#include +#include +#include +#include + +#if !defined(BOOST_NO_CXX11_HDR_ARRAY) +# include +#endif + +#if !defined(BOOST_NO_CXX11_HDR_TUPLE) +# include +#endif + +#if !defined(BOOST_NO_CXX11_HDR_MEMORY) +# include +#endif #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once @@ -54,51 +70,51 @@ namespace boost std::size_t hash_value(std::pair const& v) { std::size_t seed = 0; - hash_combine(seed, v.first); - hash_combine(seed, v.second); + boost::hash_combine(seed, v.first); + boost::hash_combine(seed, v.second); return seed; } template std::size_t hash_value(std::vector const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::list const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::deque const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::set const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::multiset const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::map const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template std::size_t hash_value(std::multimap const& v) { - return hash_range(v.begin(), v.end()); + return boost::hash_range(v.begin(), v.end()); } template @@ -110,6 +126,83 @@ namespace boost return seed; } +#if !defined(BOOST_NO_CXX11_HDR_ARRAY) + template + std::size_t hash_value(std::array const& v) + { + return boost::hash_range(v.begin(), v.end()); + } +#endif + +#if !defined(BOOST_NO_CXX11_HDR_TUPLE) + namespace hash_detail { + template + inline typename boost::enable_if_c<(I == std::tuple_size::value), + void>::type + hash_combine_tuple(std::size_t&, T const&) + { + } + + template + inline typename boost::enable_if_c<(I < std::tuple_size::value), + void>::type + hash_combine_tuple(std::size_t& seed, T const& v) + { + boost::hash_combine(seed, std::get(v)); + boost::hash_detail::hash_combine_tuple(seed, v); + } + + template + inline std::size_t hash_tuple(T const& v) + { + std::size_t seed = 0; + boost::hash_detail::hash_combine_tuple<0>(seed, v); + return seed; + } + } + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + inline std::size_t hash_value(std::tuple const& v) + { + return boost::hash_detail::hash_tuple(v); + } +#else + + inline std::size_t hash_value(std::tuple<> const& v) + { + return boost::hash_detail::hash_tuple(v); + } + +# define BOOST_HASH_TUPLE_F(z, n, _) \ + template< \ + BOOST_PP_ENUM_PARAMS_Z(z, n, typename A) \ + > \ + inline std::size_t hash_value(std::tuple< \ + BOOST_PP_ENUM_PARAMS_Z(z, n, A) \ + > const& v) \ + { \ + return boost::hash_detail::hash_tuple(v); \ + } + + BOOST_PP_REPEAT_FROM_TO(1, 11, BOOST_HASH_TUPLE_F, _) +# undef BOOST_HASH_TUPLE_F +#endif + +#endif + +#if !defined(BOOST_NO_CXX11_SMART_PTR) + template + inline std::size_t hash_value(std::shared_ptr const& x) { + return boost::hash_value(x.get()); + } + + template + inline std::size_t hash_value(std::unique_ptr const& x) { + return boost::hash_value(x.get()); + } +#endif + // // call_hash_impl // diff --git a/boost/boost/functional/hash/hash.hpp b/boost/boost/functional/hash/hash.hpp index 51ec8608c8..aa4e49f8ae 100644 --- a/boost/boost/functional/hash/hash.hpp +++ b/boost/boost/functional/hash/hash.hpp @@ -15,16 +15,15 @@ #include #include #include - -#if defined(BOOST_HASH_NO_IMPLICIT_CASTS) -#include -#endif +#include +#include +#include #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) #include #endif -#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) #include #endif @@ -37,38 +36,82 @@ namespace boost { -#if defined(BOOST_HASH_NO_IMPLICIT_CASTS) + namespace hash_detail + { + struct enable_hash_value { typedef std::size_t type; }; - // If you get a static assertion here, it's because hash_value - // isn't declared for your type. - template - std::size_t hash_value(T const&) { - BOOST_STATIC_ASSERT((T*) 0 && false); - return 0; - } + template struct basic_numbers {}; + template struct long_numbers; + template struct ulong_numbers; + template struct float_numbers {}; -#endif - - std::size_t hash_value(bool); - std::size_t hash_value(char); - std::size_t hash_value(unsigned char); - std::size_t hash_value(signed char); - std::size_t hash_value(short); - std::size_t hash_value(unsigned short); - std::size_t hash_value(int); - std::size_t hash_value(unsigned int); - std::size_t hash_value(long); - std::size_t hash_value(unsigned long); + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; #if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - std::size_t hash_value(wchar_t); + template <> struct basic_numbers : + boost::hash_detail::enable_hash_value {}; #endif - + + // long_numbers is defined like this to allow for separate + // specialization for long_long and int128_type, in case + // they conflict. + template struct long_numbers2 {}; + template struct ulong_numbers2 {}; + template struct long_numbers : long_numbers2 {}; + template struct ulong_numbers : ulong_numbers2 {}; + #if !defined(BOOST_NO_LONG_LONG) - std::size_t hash_value(boost::long_long_type); - std::size_t hash_value(boost::ulong_long_type); + template <> struct long_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct ulong_numbers : + boost::hash_detail::enable_hash_value {}; #endif +#if defined(BOOST_HAS_INT128) + template <> struct long_numbers2 : + boost::hash_detail::enable_hash_value {}; + template <> struct ulong_numbers2 : + boost::hash_detail::enable_hash_value {}; +#endif + + template <> struct float_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct float_numbers : + boost::hash_detail::enable_hash_value {}; + template <> struct float_numbers : + boost::hash_detail::enable_hash_value {}; + } + + template + typename boost::hash_detail::basic_numbers::type hash_value(T); + template + typename boost::hash_detail::long_numbers::type hash_value(T); + template + typename boost::hash_detail::ulong_numbers::type hash_value(T); + + template + typename boost::enable_if, std::size_t>::type + hash_value(T); + #if !BOOST_WORKAROUND(__DMC__, <= 0x848) template std::size_t hash_value(T* const&); #else @@ -83,15 +126,14 @@ namespace boost std::size_t hash_value(T (&x)[N]); #endif - std::size_t hash_value(float v); - std::size_t hash_value(double v); - std::size_t hash_value(long double v); - template std::size_t hash_value( std::basic_string, A> const&); -#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) + template + typename boost::hash_detail::float_numbers::type hash_value(T); + +#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) std::size_t hash_value(std::type_index); #endif @@ -141,74 +183,30 @@ namespace boost } } - inline std::size_t hash_value(bool v) + template + typename boost::hash_detail::basic_numbers::type hash_value(T v) { return static_cast(v); } - inline std::size_t hash_value(char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(signed char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(short v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned short v) - { - return static_cast(v); - } - - inline std::size_t hash_value(int v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned int v) - { - return static_cast(v); - } - - inline std::size_t hash_value(long v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned long v) - { - return static_cast(v); - } - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - inline std::size_t hash_value(wchar_t v) - { - return static_cast(v); - } -#endif - -#if !defined(BOOST_NO_LONG_LONG) - inline std::size_t hash_value(boost::long_long_type v) + template + typename boost::hash_detail::long_numbers::type hash_value(T v) { return hash_detail::hash_value_signed(v); } - inline std::size_t hash_value(boost::ulong_long_type v) + template + typename boost::hash_detail::ulong_numbers::type hash_value(T v) { return hash_detail::hash_value_unsigned(v); } -#endif + + template + typename boost::enable_if, std::size_t>::type + hash_value(T v) + { + return static_cast(v); + } // Implementation by Alberto Barbati and Dave Harris. #if !BOOST_WORKAROUND(__DMC__, <= 0x848) @@ -324,22 +322,13 @@ namespace boost return hash_range(v.begin(), v.end()); } - inline std::size_t hash_value(float v) + template + typename boost::hash_detail::float_numbers::type hash_value(T v) { return boost::hash_detail::float_hash_value(v); } - inline std::size_t hash_value(double v) - { - return boost::hash_detail::float_hash_value(v); - } - - inline std::size_t hash_value(long double v) - { - return boost::hash_detail::float_hash_value(v); - } - -#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) inline std::size_t hash_value(std::type_index v) { return v.hash_code(); @@ -450,7 +439,12 @@ namespace boost BOOST_HASH_SPECIALIZE(boost::ulong_long_type) #endif -#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +#if defined(BOOST_HAS_INT128) + BOOST_HASH_SPECIALIZE(boost::int128_type) + BOOST_HASH_SPECIALIZE(boost::uint128_type) +#endif + +#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) BOOST_HASH_SPECIALIZE(std::type_index) #endif diff --git a/boost/boost/functional/hash_fwd.hpp b/boost/boost/functional/hash_fwd.hpp new file mode 100644 index 0000000000..b640988618 --- /dev/null +++ b/boost/boost/functional/hash_fwd.hpp @@ -0,0 +1,7 @@ + +// Copyright 2005-2009 Daniel James. +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include + diff --git a/boost/boost/get_pointer.hpp b/boost/boost/get_pointer.hpp index a0cd5c0b19..b27b98a609 100644 --- a/boost/boost/get_pointer.hpp +++ b/boost/boost/get_pointer.hpp @@ -3,13 +3,15 @@ // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef GET_POINTER_DWA20021219_HPP -# define GET_POINTER_DWA20021219_HPP +#define GET_POINTER_DWA20021219_HPP + +#include // In order to avoid circular dependencies with Boost.TR1 // we make sure that our include of doesn't try to // pull in the TR1 headers: that's why we use this header // rather than including directly: -# include // std::auto_ptr +#include // std::auto_ptr namespace boost { @@ -27,6 +29,19 @@ template T * get_pointer(std::auto_ptr const& p) return p.get(); } +#if !defined( BOOST_NO_CXX11_SMART_PTR ) + +template T * get_pointer( std::unique_ptr const& p ) +{ + return p.get(); +} + +template T * get_pointer( std::shared_ptr const& p ) +{ + return p.get(); +} + +#endif } // namespace boost diff --git a/boost/boost/implicit_cast.hpp b/boost/boost/implicit_cast.hpp deleted file mode 100644 index 5b1cd92b9b..0000000000 --- a/boost/boost/implicit_cast.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright David Abrahams 2003. -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -#ifndef IMPLICIT_CAST_DWA200356_HPP -# define IMPLICIT_CAST_DWA200356_HPP - -# include - -namespace boost { - -// implementation originally suggested by C. Green in -// http://lists.boost.org/MailArchives/boost/msg00886.php - -// The use of identity creates a non-deduced form, so that the -// explicit template argument must be supplied -template -inline T implicit_cast (typename mpl::identity::type x) { - return x; -} - -// incomplete return type now is here -//template -//void implicit_cast (...); - -} // namespace boost - - -#endif // IMPLICIT_CAST_DWA200356_HPP diff --git a/boost/boost/integer.hpp b/boost/boost/integer.hpp index fc0b3983b9..35a1e10988 100644 --- a/boost/boost/integer.hpp +++ b/boost/boost/integer.hpp @@ -20,6 +20,7 @@ #include // for boost::::boost::integer_traits #include // for ::std::numeric_limits #include // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T +#include // // We simply cannot include this header on gcc without getting copious warnings of the kind: @@ -51,6 +52,7 @@ namespace boost // convert category to type template< int Category > struct int_least_helper {}; // default is empty + template< int Category > struct uint_least_helper {}; // default is empty // specializatons: 1=long, 2=int, 3=short, 4=signed char, // 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char @@ -65,14 +67,14 @@ namespace boost template<> struct int_least_helper<4> { typedef short least; }; template<> struct int_least_helper<5> { typedef signed char least; }; #ifdef BOOST_HAS_LONG_LONG - template<> struct int_least_helper<6> { typedef boost::ulong_long_type least; }; + template<> struct uint_least_helper<1> { typedef boost::ulong_long_type least; }; #elif defined(BOOST_HAS_MS_INT64) - template<> struct int_least_helper<6> { typedef unsigned __int64 least; }; + template<> struct uint_least_helper<1> { typedef unsigned __int64 least; }; #endif - template<> struct int_least_helper<7> { typedef unsigned long least; }; - template<> struct int_least_helper<8> { typedef unsigned int least; }; - template<> struct int_least_helper<9> { typedef unsigned short least; }; - template<> struct int_least_helper<10> { typedef unsigned char least; }; + template<> struct uint_least_helper<2> { typedef unsigned long least; }; + template<> struct uint_least_helper<3> { typedef unsigned int least; }; + template<> struct uint_least_helper<4> { typedef unsigned short least; }; + template<> struct uint_least_helper<5> { typedef unsigned char least; }; template struct exact_signed_base_helper{}; @@ -111,10 +113,12 @@ namespace boost template< int Bits > // bits (including sign) required struct int_t : public detail::exact_signed_base_helper { + BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::intmax_t) * CHAR_BIT), + "No suitable signed integer type with the requested number of bits is available."); typedef typename detail::int_least_helper < #ifdef BOOST_HAS_LONG_LONG - (Bits-1 <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + + (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + #else 1 + #endif @@ -130,6 +134,8 @@ namespace boost template< int Bits > // bits required struct uint_t : public detail::exact_unsigned_base_helper { + BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::uintmax_t) * CHAR_BIT), + "No suitable unsigned integer type with the requested number of bits is available."); #if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) // It's really not clear why this workaround should be needed... shrug I guess! JM BOOST_STATIC_CONSTANT(int, s = @@ -140,11 +146,10 @@ namespace boost (Bits <= ::std::numeric_limits::digits)); typedef typename detail::int_least_helper< ::boost::uint_t::s>::least least; #else - typedef typename detail::int_least_helper + typedef typename detail::uint_least_helper < - 5 + #ifdef BOOST_HAS_LONG_LONG - (Bits-1 <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + + (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + #else 1 + #endif @@ -217,7 +222,7 @@ namespace boost // It's really not clear why this workaround should be needed... shrug I guess! JM #if defined(BOOST_NO_INTEGRAL_INT64_T) BOOST_STATIC_CONSTANT(unsigned, which = - 6 + + 1 + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) + @@ -225,18 +230,17 @@ namespace boost typedef typename detail::int_least_helper< ::boost::uint_value_t::which>::least least; #else // BOOST_NO_INTEGRAL_INT64_T BOOST_STATIC_CONSTANT(unsigned, which = - 5 + + 1 + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max)); - typedef typename detail::int_least_helper< ::boost::uint_value_t::which>::least least; + typedef typename detail::uint_least_helper< ::boost::uint_value_t::which>::least least; #endif // BOOST_NO_INTEGRAL_INT64_T #else - typedef typename detail::int_least_helper + typedef typename detail::uint_least_helper < - 5 + #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) (MaxValue <= ::boost::integer_traits::const_max) + #else diff --git a/boost/boost/integer_traits.hpp b/boost/boost/integer_traits.hpp index c6d761a71c..ddd5609522 100644 --- a/boost/boost/integer_traits.hpp +++ b/boost/boost/integer_traits.hpp @@ -5,7 +5,7 @@ * accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * - * $Id: integer_traits.hpp 76784 2012-01-29 21:58:13Z eric_niebler $ + * $Id: integer_traits.hpp 81851 2012-12-11 14:42:26Z marshall $ * * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers */ diff --git a/boost/boost/is_placeholder.hpp b/boost/boost/is_placeholder.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/iterator/iterator_concepts.hpp b/boost/boost/iterator/iterator_concepts.hpp new file mode 100644 index 0000000000..ced1112a61 --- /dev/null +++ b/boost/boost/iterator/iterator_concepts.hpp @@ -0,0 +1,284 @@ +// (C) Copyright Jeremy Siek 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_ITERATOR_CONCEPTS_HPP +#define BOOST_ITERATOR_CONCEPTS_HPP + +#include +#include + +// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems. +#include + +#include +#include + +#include +#include +#include +#include + +#include + +// Use boost/limits to work around missing limits headers on some compilers +#include +#include + +#include + +#include + +namespace boost_concepts +{ + // Used a different namespace here (instead of "boost") so that the + // concept descriptions do not take for granted the names in + // namespace boost. + + //=========================================================================== + // Iterator Access Concepts + + BOOST_concept(ReadableIterator,(Iterator)) + : boost::Assignable + , boost::CopyConstructible + + { + typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type value_type; + typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference reference; + + BOOST_CONCEPT_USAGE(ReadableIterator) + { + + value_type v = *i; + boost::ignore_unused_variable_warning(v); + } + private: + Iterator i; + }; + + template < + typename Iterator + , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type + > + struct WritableIterator + : boost::CopyConstructible + { + BOOST_CONCEPT_USAGE(WritableIterator) + { + *i = v; + } + private: + ValueType v; + Iterator i; + }; + + template < + typename Iterator + , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type + > + struct WritableIteratorConcept : WritableIterator {}; + + BOOST_concept(SwappableIterator,(Iterator)) + { + BOOST_CONCEPT_USAGE(SwappableIterator) + { + std::iter_swap(i1, i2); + } + private: + Iterator i1; + Iterator i2; + }; + + BOOST_concept(LvalueIterator,(Iterator)) + { + typedef typename boost::detail::iterator_traits::value_type value_type; + + BOOST_CONCEPT_USAGE(LvalueIterator) + { + value_type& r = const_cast(*i); + boost::ignore_unused_variable_warning(r); + } + private: + Iterator i; + }; + + + //=========================================================================== + // Iterator Traversal Concepts + + BOOST_concept(IncrementableIterator,(Iterator)) + : boost::Assignable + , boost::CopyConstructible + { + typedef typename boost::iterator_traversal::type traversal_category; + + BOOST_CONCEPT_ASSERT(( + boost::Convertible< + traversal_category + , boost::incrementable_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(IncrementableIterator) + { + ++i; + (void)i++; + } + private: + Iterator i; + }; + + BOOST_concept(SinglePassIterator,(Iterator)) + : IncrementableIterator + , boost::EqualityComparable + + { + BOOST_CONCEPT_ASSERT(( + boost::Convertible< + BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category + , boost::single_pass_traversal_tag + > )); + }; + + BOOST_concept(ForwardTraversal,(Iterator)) + : SinglePassIterator + , boost::DefaultConstructible + { + typedef typename boost::detail::iterator_traits::difference_type difference_type; + + BOOST_MPL_ASSERT((boost::is_integral)); + BOOST_MPL_ASSERT_RELATION(std::numeric_limits::is_signed, ==, true); + + BOOST_CONCEPT_ASSERT(( + boost::Convertible< + BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category + , boost::forward_traversal_tag + > )); + }; + + BOOST_concept(BidirectionalTraversal,(Iterator)) + : ForwardTraversal + { + BOOST_CONCEPT_ASSERT(( + boost::Convertible< + BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category + , boost::bidirectional_traversal_tag + > )); + + BOOST_CONCEPT_USAGE(BidirectionalTraversal) + { + --i; + (void)i--; + } + private: + Iterator i; + }; + + BOOST_concept(RandomAccessTraversal,(Iterator)) + : BidirectionalTraversal + { + BOOST_CONCEPT_ASSERT(( + boost::Convertible< + BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category + , boost::random_access_traversal_tag + > )); + + BOOST_CONCEPT_USAGE(RandomAccessTraversal) + { + i += n; + i = i + n; + i = n + i; + i -= n; + i = i - n; + n = i - j; + } + + private: + typename BidirectionalTraversal::difference_type n; + Iterator i, j; + }; + + //=========================================================================== + // Iterator Interoperability + + namespace detail + { + template + void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2) + { + bool b; + b = i1 == i2; + b = i1 != i2; + + b = i2 == i1; + b = i2 != i1; + boost::ignore_unused_variable_warning(b); + } + + template + void interop_rand_access_constraints( + Iterator1 const& i1, Iterator2 const& i2, + boost::random_access_traversal_tag, boost::random_access_traversal_tag) + { + bool b; + typename boost::detail::iterator_traits::difference_type n; + b = i1 < i2; + b = i1 <= i2; + b = i1 > i2; + b = i1 >= i2; + n = i1 - i2; + + b = i2 < i1; + b = i2 <= i1; + b = i2 > i1; + b = i2 >= i1; + n = i2 - i1; + boost::ignore_unused_variable_warning(b); + boost::ignore_unused_variable_warning(n); + } + + template + void interop_rand_access_constraints( + Iterator1 const&, Iterator2 const&, + boost::single_pass_traversal_tag, boost::single_pass_traversal_tag) + { } + + } // namespace detail + + BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator)) + { + private: + typedef typename boost::detail::pure_traversal_tag< + typename boost::iterator_traversal< + Iterator + >::type + >::type traversal_category; + + typedef typename boost::detail::pure_traversal_tag< + typename boost::iterator_traversal< + ConstIterator + >::type + >::type const_traversal_category; + + public: + BOOST_CONCEPT_ASSERT((SinglePassIterator)); + BOOST_CONCEPT_ASSERT((SinglePassIterator)); + + BOOST_CONCEPT_USAGE(InteroperableIterator) + { + detail::interop_single_pass_constraints(i, ci); + detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category()); + + ci = i; + } + + private: + Iterator i; + ConstIterator ci; + }; + +} // namespace boost_concepts + +#include + +#endif // BOOST_ITERATOR_CONCEPTS_HPP diff --git a/boost/boost/iterator/iterator_facade.hpp b/boost/boost/iterator/iterator_facade.hpp index 5ee73b5aa4..d84b402d59 100644 --- a/boost/boost/iterator/iterator_facade.hpp +++ b/boost/boost/iterator/iterator_facade.hpp @@ -14,8 +14,8 @@ #include #include -#include #include +#include #include #include @@ -147,7 +147,7 @@ namespace boost // Returning a mutable reference allows nonsense like // (*r++).mutate(), but it imposes fewer assumptions about the - // behavior of the value_type. In particular, recall taht + // behavior of the value_type. In particular, recall that // (*r).mutate() is legal if operator* returns by value. value_type& operator*() const @@ -294,46 +294,43 @@ namespace boost // operator->() needs special support for input iterators to strictly meet the // standard's requirements. If *i is not a reference type, we must still - // produce a lvalue to which a pointer can be formed. We do that by - // returning an instantiation of this special proxy class template. - template - struct operator_arrow_proxy + // produce an lvalue to which a pointer can be formed. We do that by + // returning a proxy object containing an instance of the reference object. + template + struct operator_arrow_dispatch // proxy references { - operator_arrow_proxy(T const* px) : m_value(*px) {} - T* operator->() const { return &m_value; } - // This function is needed for MWCW and BCC, which won't call operator-> - // again automatically per 13.3.1.2 para 8 - operator T*() const { return &m_value; } - mutable T m_value; + struct proxy + { + explicit proxy(Reference const & x) : m_ref(x) {} + Reference* operator->() { return boost::addressof(m_ref); } + // This function is needed for MWCW and BCC, which won't call + // operator-> again automatically per 13.3.1.2 para 8 + operator Reference*() { return boost::addressof(m_ref); } + Reference m_ref; + }; + typedef proxy result_type; + static result_type apply(Reference const & x) + { + return result_type(x); + } }; - // A metafunction that gets the result type for operator->. Also - // has a static function make() which builds the result from a - // Reference - template - struct operator_arrow_result + template + struct operator_arrow_dispatch // "real" references { - // CWPro8.3 won't accept "operator_arrow_result::type", and we - // need that type below, so metafunction forwarding would be a - // losing proposition here. - typedef typename mpl::if_< - is_reference - , Pointer - , operator_arrow_proxy - >::type type; - - static type make(Reference x) + typedef Pointer result_type; + static result_type apply(T& x) { - return boost::implicit_cast(&x); + return boost::addressof(x); } }; # if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // Deal with ETI template<> - struct operator_arrow_result + struct operator_arrow_dispatch { - typedef int type; + typedef int result_type; }; # endif @@ -618,11 +615,10 @@ namespace boost Value, CategoryOrTraversal, Reference, Difference > associated_types; - typedef boost::detail::operator_arrow_result< - typename associated_types::value_type - , Reference + typedef boost::detail::operator_arrow_dispatch< + Reference , typename associated_types::pointer - > pointer_; + > operator_arrow_dispatch_; protected: // For use by derived classes @@ -634,7 +630,7 @@ namespace boost typedef Reference reference; typedef Difference difference_type; - typedef typename pointer_::type pointer; + typedef typename operator_arrow_dispatch_::result_type pointer; typedef typename associated_types::iterator_category iterator_category; @@ -645,7 +641,7 @@ namespace boost pointer operator->() const { - return pointer_::make(*this->derived()); + return operator_arrow_dispatch_::apply(*this->derived()); } typename boost::detail::operator_brackets_result::type diff --git a/boost/boost/iterator/reverse_iterator.hpp b/boost/boost/iterator/reverse_iterator.hpp new file mode 100644 index 0000000000..79cc7f2ca5 --- /dev/null +++ b/boost/boost/iterator/reverse_iterator.hpp @@ -0,0 +1,69 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek 2002. +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_REVERSE_ITERATOR_23022003THW_HPP +#define BOOST_REVERSE_ITERATOR_23022003THW_HPP + +#include +#include +#include + +namespace boost +{ + + // + // + // + template + class reverse_iterator + : public iterator_adaptor< reverse_iterator, Iterator > + { + typedef iterator_adaptor< reverse_iterator, Iterator > super_t; + + friend class iterator_core_access; + + public: + reverse_iterator() {} + + explicit reverse_iterator(Iterator x) + : super_t(x) {} + + template + reverse_iterator( + reverse_iterator const& r + , typename enable_if_convertible::type* = 0 + ) + : super_t(r.base()) + {} + + private: + typename super_t::reference dereference() const { return *boost::prior(this->base()); } + + void increment() { --this->base_reference(); } + void decrement() { ++this->base_reference(); } + + void advance(typename super_t::difference_type n) + { + this->base_reference() += -n; + } + + template + typename super_t::difference_type + distance_to(reverse_iterator const& y) const + { + return this->base_reference() - y.base(); + } + }; + + template + reverse_iterator make_reverse_iterator(BidirectionalIterator x) + { + return reverse_iterator(x); + } + +} // namespace boost + +#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP diff --git a/boost/boost/lexical_cast.hpp b/boost/boost/lexical_cast.hpp index 5a3d4f072a..94dbaf970f 100644 --- a/boost/boost/lexical_cast.hpp +++ b/boost/boost/lexical_cast.hpp @@ -18,7 +18,7 @@ // with additional fixes and suggestions from Gennaro Prota, // Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov, // Alexander Nasonov, Antony Polukhin, Justin Viiret, Michael Hofmann, -// Cheng Yang, Matthew Bradbury, David W. Birdsall and other Boosters +// Cheng Yang, Matthew Bradbury, David W. Birdsall, Pavel Korzh and other Boosters // when: November 2000, March 2003, June 2005, June 2006, March 2011 - 2012 #include @@ -26,65 +26,33 @@ #define BOOST_LCAST_NO_WCHAR_T #endif -#if (defined(__MINGW32__) || defined(__MINGW64__)) && (__GNUC__ == 4) \ - && ((__GNUC_MINOR__ == 4) || (__GNUC_MINOR__ == 5)) && defined(__STRICT_ANSI__) \ - && !defined(BOOST_LCAST_NO_WCHAR_T) - -// workaround for a mingw bug -// http://sourceforge.net/tracker/index.php?func=detail&aid=2373234&group_id=2435&atid=102435 -#include <_mingw.h> -#if (__GNUC_MINOR__ == 4) -extern "C" { -_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); -_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); -} -#endif -#if (__GNUC_MINOR__ == 5) -extern "C" { -_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); -_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , va_list); -} -#endif -#endif - #include #include -#include #include #include #include #include #include -#include #include #include #include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include +#include #include #include #include -#if !defined(__SUNPRO_CC) -#include -#endif // !defined(__SUNPRO_CC) -#ifndef BOOST_NO_CWCHAR -# include -#endif + #ifndef BOOST_NO_STD_LOCALE # include #else # ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE -# warning "Unable to use header. boost::lexical_cast will use the 'C' locale." -# define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE + // Getting error at this point means, that your STL library is old/lame/misconfigured. + // If nothing can be done with STL library, define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE, + // but beware: lexical_cast will understand only 'C' locale delimeters and thousands + // separators. +# error "Unable to use header. Define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force " +# error "boost::lexical_cast to use only 'C' locale during conversions." # endif #endif @@ -104,7 +72,7 @@ _CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restric namespace boost { // exception used to indicate runtime lexical_cast failure - class bad_lexical_cast : + class BOOST_SYMBOL_VISIBLE bad_lexical_cast : // workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0 #if defined(BOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS public std::exception @@ -119,7 +87,7 @@ namespace boost { public: - bad_lexical_cast() : + bad_lexical_cast() BOOST_NOEXCEPT : #ifndef BOOST_NO_TYPEID source(&typeid(void)), target(&typeid(void)) #else @@ -130,7 +98,7 @@ namespace boost bad_lexical_cast( const std::type_info &source_type_arg, - const std::type_info &target_type_arg) : + const std::type_info &target_type_arg) BOOST_NOEXCEPT : source(&source_type_arg), target(&target_type_arg) { } @@ -144,119 +112,30 @@ namespace boost return *target; } +#ifndef BOOST_NO_CXX11_NOEXCEPT + virtual const char *what() const noexcept +#else virtual const char *what() const throw() +#endif { return "bad lexical cast: " "source type value could not be interpreted as target"; } + +#ifndef BOOST_NO_CXX11_NOEXCEPT + virtual ~bad_lexical_cast() BOOST_NOEXCEPT +#else virtual ~bad_lexical_cast() throw() - { - } +#endif + {} private: const std::type_info *source; const std::type_info *target; }; - namespace detail // selectors for choosing stream character type + namespace detail // widest_char { - template - struct stream_char - { - typedef char type; - }; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct stream_char< std::basic_string > - { - typedef CharT type; - }; - -#if !defined(__SUNPRO_CC) - template - struct stream_char< ::boost::container::basic_string > - { - typedef CharT type; - }; -#endif // !defined(__SUNPRO_CC) -#endif - -#ifndef BOOST_LCAST_NO_WCHAR_T -#ifndef BOOST_NO_INTRINSIC_WCHAR_T - template<> - struct stream_char - { - typedef wchar_t type; - }; -#endif - - template<> - struct stream_char - { - typedef wchar_t type; - }; - - template<> - struct stream_char - { - typedef wchar_t type; - }; - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template<> - struct stream_char - { - typedef wchar_t type; - }; -#endif -#endif - - -#ifndef BOOST_NO_CHAR16_T - - template<> - struct stream_char - { - typedef char16_t type; - }; - - template<> - struct stream_char - { - typedef char16_t type; - }; - - template<> - struct stream_char - { - typedef char16_t type; - }; - -#endif - -#ifndef BOOST_NO_CHAR32_T - - template<> - struct stream_char - { - typedef char32_t type; - }; - - template<> - struct stream_char - { - typedef char32_t type; - }; - - template<> - struct stream_char - { - typedef char32_t type; - }; - -#endif - - template + template struct widest_char { typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< @@ -265,92 +144,405 @@ namespace boost , SourceChar >::type type; }; } +} // namespace boost - namespace detail // deduce_char_traits template +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__) + +#include +#include + +#ifndef BOOST_NO_CXX11_HDR_ARRAY +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef BOOST_NO_CWCHAR +# include +#endif + +namespace boost { + + namespace detail // is_char_or_wchar<...> { -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct deduce_char_traits + // returns true, if T is one of the character types + template < typename T > + struct is_char_or_wchar { - typedef std::char_traits type; + typedef boost::type_traits::ice_or< + boost::is_same< T, char >::value, + #ifndef BOOST_LCAST_NO_WCHAR_T + boost::is_same< T, wchar_t >::value, + #endif + #ifndef BOOST_NO_CXX11_CHAR16_T + boost::is_same< T, char16_t >::value, + #endif + #ifndef BOOST_NO_CXX11_CHAR32_T + boost::is_same< T, char32_t >::value, + #endif + boost::is_same< T, unsigned char >::value, + boost::is_same< T, signed char >::value + > result_type; + + BOOST_STATIC_CONSTANT(bool, value = (result_type::value) ); + }; + } + + namespace detail // normalize_single_byte_char + { + // Converts signed/unsigned char to char + template < class Char > + struct normalize_single_byte_char + { + typedef Char type; }; - template - struct deduce_char_traits< CharT - , std::basic_string - , Source - > + template <> + struct normalize_single_byte_char< signed char > { - typedef Traits type; + typedef char type; }; - template - struct deduce_char_traits< CharT - , Target - , std::basic_string - > + template <> + struct normalize_single_byte_char< unsigned char > { - typedef Traits type; + typedef char type; + }; + } + + namespace detail // deduce_character_type_later + { + // Helper type, meaning that stram character for T must be deduced + // at Stage 2 (See deduce_source_char and deduce_target_char) + template < class T > struct deduce_character_type_later {}; + } + + namespace detail // stream_char_common + { + // Selectors to choose stream character type (common for Source and Target) + // Returns one of char, wchar_t, char16_t, char32_t or deduce_character_type_later types + // Executed on Stage 1 (See deduce_source_char and deduce_target_char) + template < typename Type > + struct stream_char_common: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Type >::value, + Type, + boost::detail::deduce_character_type_later< Type > + > {}; + + template < typename Char > + struct stream_char_common< Char* >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< Char* > + > {}; + + template < typename Char > + struct stream_char_common< const Char* >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< const Char* > + > {}; + + template < typename Char > + struct stream_char_common< boost::iterator_range< Char* > >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< boost::iterator_range< Char* > > + > {}; + + template < typename Char > + struct stream_char_common< boost::iterator_range< const Char* > >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< boost::iterator_range< const Char* > > + > {}; + + template < class Char, class Traits, class Alloc > + struct stream_char_common< std::basic_string< Char, Traits, Alloc > > + { + typedef Char type; }; -#if !defined(__SUNPRO_CC) - template - struct deduce_char_traits< CharT - , ::boost::container::basic_string - , Source - > + template < class Char, class Traits, class Alloc > + struct stream_char_common< boost::container::basic_string< Char, Traits, Alloc > > { - typedef Traits type; + typedef Char type; }; - template - struct deduce_char_traits< CharT - , Target - , ::boost::container::basic_string - > - { - typedef Traits type; - }; + template < typename Char, std::size_t N > + struct stream_char_common< boost::array< Char, N > >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< boost::array< Char, N > > + > {}; - template - struct deduce_char_traits< CharT - , std::basic_string - , std::basic_string - > - { - typedef Traits type; - }; + template < typename Char, std::size_t N > + struct stream_char_common< boost::array< const Char, N > >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< boost::array< const Char, N > > + > {}; - template - struct deduce_char_traits< CharT - , ::boost::container::basic_string - , ::boost::container::basic_string - > - { - typedef Traits type; - }; +#ifndef BOOST_NO_CXX11_HDR_ARRAY + template < typename Char, std::size_t N > + struct stream_char_common< std::array >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< std::array< Char, N > > + > {}; - template - struct deduce_char_traits< CharT - , ::boost::container::basic_string - , std::basic_string - > - { - typedef Traits type; - }; + template < typename Char, std::size_t N > + struct stream_char_common< std::array< const Char, N > >: public boost::mpl::if_c< + boost::detail::is_char_or_wchar< Char >::value, + Char, + boost::detail::deduce_character_type_later< std::array< const Char, N > > + > {}; +#endif - template - struct deduce_char_traits< CharT - , std::basic_string - , ::boost::container::basic_string - > +#if !defined(BOOST_LCAST_NO_WCHAR_T) && defined(BOOST_NO_INTRINSIC_WCHAR_T) + template <> + struct stream_char_common< wchar_t > { - typedef Traits type; + typedef char type; }; -#endif // !defined(__SUNPRO_CC) #endif } + namespace detail // deduce_source_char_impl + { + // If type T is `deduce_character_type_later` type, then tries to deduce + // character type using boost::has_left_shift metafunction. + // Otherwise supplied type T is a character type, that must be normalized + // using normalize_single_byte_char. + // Executed at Stage 2 (See deduce_source_char and deduce_target_char) + template < class Char > + struct deduce_source_char_impl + { + typedef BOOST_DEDUCED_TYPENAME boost::detail::normalize_single_byte_char< Char >::type type; + }; + + template < class T > + struct deduce_source_char_impl< deduce_character_type_later< T > > + { + typedef boost::has_left_shift< std::basic_ostream< char >, T > result_t; + +#if defined(BOOST_LCAST_NO_WCHAR_T) + BOOST_STATIC_ASSERT_MSG((result_t::value), + "Source type is not std::ostream`able and std::wostream`s are not supported by your STL implementation"); + typedef char type; +#else + typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + result_t::value, char, wchar_t + >::type type; + + BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_left_shift< std::basic_ostream< type >, T >::value), + "Source type is neither std::ostream`able nor std::wostream`able"); +#endif + }; + } + + namespace detail // deduce_target_char_impl + { + // If type T is `deduce_character_type_later` type, then tries to deduce + // character type using boost::has_right_shift metafunction. + // Otherwise supplied type T is a character type, that must be normalized + // using normalize_single_byte_char. + // Executed at Stage 2 (See deduce_source_char and deduce_target_char) + template < class Char > + struct deduce_target_char_impl + { + typedef BOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; + }; + + template < class T > + struct deduce_target_char_impl< deduce_character_type_later > + { + typedef boost::has_right_shift, T > result_t; + +#if defined(BOOST_LCAST_NO_WCHAR_T) + BOOST_STATIC_ASSERT_MSG((result_t::value), + "Target type is not std::istream`able and std::wistream`s are not supported by your STL implementation"); + typedef char type; +#else + typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + result_t::value, char, wchar_t + >::type type; + + BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift, T >::value), + "Target type is neither std::istream`able nor std::wistream`able"); +#endif + }; + } + + namespace detail // deduce_target_char and deduce_source_char + { + // We deduce stream character types in two stages. + // + // Stage 1 is common for Target and Source. At Stage 1 we get + // non normalized character type (may contain unsigned/signed char) + // or deduce_character_type_later where T is the original type. + // Stage 1 is executed by stream_char_common + // + // At Stage 2 we normalize character types or try to deduce character + // type using metafunctions. + // Stage 2 is executed by deduce_target_char_impl and + // deduce_source_char_impl + // + // deduce_target_char and deduce_source_char functions combine + // both stages + + template < class T > + struct deduce_target_char + { + typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type; + typedef BOOST_DEDUCED_TYPENAME deduce_target_char_impl< stage1_type >::type stage2_type; + + typedef stage2_type type; + }; + + template < class T > + struct deduce_source_char + { + typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type; + typedef BOOST_DEDUCED_TYPENAME deduce_source_char_impl< stage1_type >::type stage2_type; + + typedef stage2_type type; + }; + } + + namespace detail // deduce_char_traits template + { + // We are attempting to get char_traits<> from Source or Tagret + // template parameter. Otherwise we'll be using std::char_traits + template < class Char, class Target, class Source > + struct deduce_char_traits + { + typedef std::char_traits< Char > type; + }; + + template < class Char, class Traits, class Alloc, class Source > + struct deduce_char_traits< Char + , std::basic_string< Char, Traits, Alloc > + , Source + > + { + typedef Traits type; + }; + + template < class Char, class Target, class Traits, class Alloc > + struct deduce_char_traits< Char + , Target + , std::basic_string< Char, Traits, Alloc > + > + { + typedef Traits type; + }; + + template < class Char, class Traits, class Alloc, class Source > + struct deduce_char_traits< Char + , boost::container::basic_string< Char, Traits, Alloc > + , Source + > + { + typedef Traits type; + }; + + template < class Char, class Target, class Traits, class Alloc > + struct deduce_char_traits< Char + , Target + , boost::container::basic_string< Char, Traits, Alloc > + > + { + typedef Traits type; + }; + + template < class Char, class Traits, class Alloc1, class Alloc2 > + struct deduce_char_traits< Char + , std::basic_string< Char, Traits, Alloc1 > + , std::basic_string< Char, Traits, Alloc2 > + > + { + typedef Traits type; + }; + + template + struct deduce_char_traits< Char + , boost::container::basic_string< Char, Traits, Alloc1 > + , boost::container::basic_string< Char, Traits, Alloc2 > + > + { + typedef Traits type; + }; + + template < class Char, class Traits, class Alloc1, class Alloc2 > + struct deduce_char_traits< Char + , boost::container::basic_string< Char, Traits, Alloc1 > + , std::basic_string< Char, Traits, Alloc2 > + > + { + typedef Traits type; + }; + + template < class Char, class Traits, class Alloc1, class Alloc2 > + struct deduce_char_traits< Char + , std::basic_string< Char, Traits, Alloc1 > + , boost::container::basic_string< Char, Traits, Alloc2 > + > + { + typedef Traits type; + }; + } + + namespace detail // array_to_pointer_decay + { + template + struct array_to_pointer_decay + { + typedef T type; + }; + + template + struct array_to_pointer_decay + { + typedef const T * type; + }; + } + + namespace detail // is_this_float_conversion_optimized + { + // this metafunction evaluates to true, if we have optimized comnversion + // from Float type to Char array. + // Must be in sync with lexical_stream_limited_src::shl_real_type(...) + template + struct is_this_float_conversion_optimized + { + typedef boost::type_traits::ice_and< + boost::is_float::value, +#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__) + boost::type_traits::ice_or< + boost::type_traits::ice_eq::value, + boost::is_same::value + >::value +#else + boost::type_traits::ice_eq::value +#endif + > result_type; + + BOOST_STATIC_CONSTANT(bool, value = (result_type::value) ); + }; + } + namespace detail // lcast_src_length { // Return max. length of string representation of Source; @@ -391,7 +583,7 @@ namespace boost BOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256); #endif }; -// TODO: FIX for char16_t, char32_t, we can ignore CharT + #define BOOST_LCAST_DEF(T) \ template<> struct lcast_src_length \ : lcast_src_length_integral \ @@ -460,9 +652,67 @@ namespace boost #endif // #ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION } + namespace detail // lexical_cast_stream_traits + { + template + struct lexical_cast_stream_traits { + typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay::type src; + typedef BOOST_DEDUCED_TYPENAME boost::remove_cv::type no_cv_src; + + typedef boost::detail::deduce_source_char deduce_src_char_metafunc; + typedef BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::type src_char_t; + typedef BOOST_DEDUCED_TYPENAME boost::detail::deduce_target_char::type target_char_t; + + typedef BOOST_DEDUCED_TYPENAME boost::detail::widest_char< + target_char_t, src_char_t + >::type char_type; + +#if !defined(BOOST_NO_CXX11_CHAR16_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS) + BOOST_STATIC_ASSERT_MSG(( !boost::is_same::value + && !boost::is_same::value), + "Your compiler does not have full support for char16_t" ); +#endif +#if !defined(BOOST_NO_CXX11_CHAR32_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS) + BOOST_STATIC_ASSERT_MSG(( !boost::is_same::value + && !boost::is_same::value), + "Your compiler does not have full support for char32_t" ); +#endif + + typedef BOOST_DEDUCED_TYPENAME boost::detail::deduce_char_traits< + char_type, Target, no_cv_src + >::type traits; + + typedef boost::type_traits::ice_and< + boost::is_same::value, // source is not a wide character based type + boost::type_traits::ice_ne::value, // target type is based on wide character + boost::type_traits::ice_not< + boost::detail::is_char_or_wchar::value // single character widening is optimized + >::value // and does not requires stringbuffer + > is_string_widening_required_t; + + typedef boost::type_traits::ice_not< boost::type_traits::ice_or< + boost::is_integral::value, + boost::detail::is_this_float_conversion_optimized::value, + boost::detail::is_char_or_wchar< + BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::stage1_type // if we did not get character type at stage1 + >::value // then we have no optimization for that type + >::value > is_source_input_not_optimized_t; + + // If we have an optimized conversion for + // Source, we do not need to construct stringbuf. + BOOST_STATIC_CONSTANT(bool, requires_stringbuf = + (boost::type_traits::ice_or< + is_string_widening_required_t::value, is_source_input_not_optimized_t::value + >::value) + ); + + typedef boost::detail::lcast_src_length len_t; + }; + } + namespace detail // '0', '+' and '-' constants { - template struct lcast_char_constants; + template < typename Char > struct lcast_char_constants; template<> struct lcast_char_constants @@ -488,7 +738,7 @@ namespace boost }; #endif -#ifndef BOOST_NO_CHAR16_T +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) template<> struct lcast_char_constants { @@ -501,7 +751,7 @@ namespace boost }; #endif -#ifndef BOOST_NO_CHAR32_T +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) template<> struct lcast_char_constants { @@ -517,26 +767,15 @@ namespace boost namespace detail // lcast_to_unsigned { -#if (defined _MSC_VER) -# pragma warning( push ) -// C4146: unary minus operator applied to unsigned type, result still unsigned -# pragma warning( disable : 4146 ) -#elif defined( __BORLANDC__ ) -# pragma option push -w-8041 -#endif template inline - BOOST_DEDUCED_TYPENAME make_unsigned::type lcast_to_unsigned(T value) + BOOST_DEDUCED_TYPENAME make_unsigned::type lcast_to_unsigned(T value) BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME make_unsigned::type result_type; - result_type uvalue = static_cast(value); - return value < 0 ? -uvalue : uvalue; + typedef BOOST_DEDUCED_TYPENAME boost::make_unsigned::type result_type; + return static_cast( + value < 0 ? 0u - static_cast(value) : value + ); } -#if (defined _MSC_VER) -# pragma warning( pop ) -#elif defined( __BORLANDC__ ) -# pragma option pop -#endif } namespace detail // lcast_put_unsigned @@ -732,12 +971,21 @@ namespace boost namespace detail { + template + bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) BOOST_NOEXCEPT { + for( unsigned int i=0; i < len; ++i ) { + if ( val[i] != lcase[i] && val[i] != ucase[i] ) return false; + } + + return true; + } + /* Returns true and sets the correct value if found NaN or Inf. */ template inline bool parse_inf_nan_impl(const CharT* begin, const CharT* end, T& value , const CharT* lc_NAN, const CharT* lc_nan , const CharT* lc_INFINITY, const CharT* lc_infinity - , const CharT opening_brace, const CharT closing_brace) + , const CharT opening_brace, const CharT closing_brace) BOOST_NOEXCEPT { using namespace std; if (begin == end) return false; @@ -755,7 +1003,7 @@ namespace boost else if( *begin == plus ) ++begin; if( end-begin < 3 ) return false; - if( !memcmp(begin, lc_nan, 3*sizeof(CharT)) || !memcmp(begin, lc_NAN, 3*sizeof(CharT)) ) + if( lc_iequal(begin, lc_nan, lc_NAN, 3) ) { begin += 3; if (end != begin) /* It is 'nan(...)' or some bad input*/ @@ -772,13 +1020,13 @@ namespace boost if (( /* 'INF' or 'inf' */ end-begin==3 && - (!memcmp(begin, lc_infinity, 3*sizeof(CharT)) || !memcmp(begin, lc_INFINITY, 3*sizeof(CharT))) + lc_iequal(begin, lc_infinity, lc_INFINITY, 3) ) || ( /* 'INFINITY' or 'infinity' */ end-begin==inifinity_size && - (!memcmp(begin, lc_infinity, inifinity_size)|| !memcmp(begin, lc_INFINITY, inifinity_size)) + lc_iequal(begin, lc_infinity, lc_INFINITY, inifinity_size) ) ) { @@ -790,112 +1038,105 @@ namespace boost return false; } + template + bool put_inf_nan_impl(CharT* begin, CharT*& end, const T& value + , const CharT* lc_nan + , const CharT* lc_infinity) BOOST_NOEXCEPT + { + using namespace std; + const CharT minus = lcast_char_constants::minus; + if ( (boost::math::isnan)(value) ) + { + if ( (boost::math::signbit)(value) ) + { + *begin = minus; + ++ begin; + } + + memcpy(begin, lc_nan, 3 * sizeof(CharT)); + end = begin + 3; + return true; + } else if ( (boost::math::isinf)(value) ) + { + if ( (boost::math::signbit)(value) ) + { + *begin = minus; + ++ begin; + } + + memcpy(begin, lc_infinity, 3 * sizeof(CharT)); + end = begin + 3; + return true; + } + + return false; + } + + #ifndef BOOST_LCAST_NO_WCHAR_T template - bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) + bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) BOOST_NOEXCEPT { return parse_inf_nan_impl(begin, end, value , L"NAN", L"nan" , L"INFINITY", L"infinity" , L'(', L')'); } -#endif -#ifndef BOOST_NO_CHAR16_T + template - bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) + bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) BOOST_NOEXCEPT + { + return put_inf_nan_impl(begin, end, value, L"nan", L"infinity"); + } + +#endif +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) + template + bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) BOOST_NOEXCEPT { return parse_inf_nan_impl(begin, end, value , u"NAN", u"nan" , u"INFINITY", u"infinity" , u'(', u')'); } -#endif -#ifndef BOOST_NO_CHAR32_T + template - bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) + bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) BOOST_NOEXCEPT + { + return put_inf_nan_impl(begin, end, value, u"nan", u"infinity"); + } +#endif +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) + template + bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) BOOST_NOEXCEPT { return parse_inf_nan_impl(begin, end, value , U"NAN", U"nan" , U"INFINITY", U"infinity" , U'(', U')'); } + + template + bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) BOOST_NOEXCEPT + { + return put_inf_nan_impl(begin, end, value, U"nan", U"infinity"); + } #endif template - bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) + bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) BOOST_NOEXCEPT { return parse_inf_nan_impl(begin, end, value , "NAN", "nan" , "INFINITY", "infinity" , '(', ')'); } -#ifndef BOOST_LCAST_NO_WCHAR_T - template - bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) - { - using namespace std; - if ( (boost::math::isnan)(value) ) - { - if ( (boost::math::signbit)(value) ) - { - memcpy(begin,L"-nan", sizeof(L"-nan")); - end = begin + 4; - } else - { - memcpy(begin,L"nan", sizeof(L"nan")); - end = begin + 3; - } - return true; - } else if ( (boost::math::isinf)(value) ) - { - if ( (boost::math::signbit)(value) ) - { - memcpy(begin,L"-inf", sizeof(L"-inf")); - end = begin + 4; - } else - { - memcpy(begin,L"inf", sizeof(L"inf")); - end = begin + 3; - } - return true; - } - return false; - } -#endif template - bool put_inf_nan(CharT* begin, CharT*& end, const T& value) + bool put_inf_nan(CharT* begin, CharT*& end, const T& value) BOOST_NOEXCEPT { - using namespace std; - if ( (boost::math::isnan)(value) ) - { - if ( (boost::math::signbit)(value) ) - { - memcpy(begin,"-nan", sizeof("-nan")); - end = begin + 4; - } else - { - memcpy(begin,"nan", sizeof("nan")); - end = begin + 3; - } - return true; - } else if ( (boost::math::isinf)(value) ) - { - if ( (boost::math::signbit)(value) ) - { - memcpy(begin,"-inf", sizeof("-inf")); - end = begin + 4; - } else - { - memcpy(begin,"inf", sizeof("inf")); - end = begin + 3; - } - return true; - } - - return false; + return put_inf_nan_impl(begin, end, value, "nan", "infinity"); } - } @@ -951,7 +1192,7 @@ namespace boost CharT const capital_e = lcast_char_constants::capital_e; CharT const lowercase_e = lcast_char_constants::lowercase_e; - value = 0.0; + value = static_cast(0); if (parse_inf_nan(begin, end, value)) return true; @@ -962,11 +1203,11 @@ namespace boost /* Getting the plus/minus sign */ bool has_minus = false; - if ( *begin == minus ) { + if (Traits::eq(*begin, minus) ) { ++ begin; has_minus = true; if (begin == end) return false; - } else if ( *begin == plus ) { + } else if (Traits::eq(*begin, plus) ) { ++begin; if (begin == end) return false; } @@ -985,7 +1226,7 @@ namespace boost /* We allow no thousand_separators after decimal point */ mantissa_type tmp_mantissa = mantissa * 10u; - if ( *begin == lowercase_e || *begin == capital_e ) break; + if (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) break; if ( *begin < czero || *begin >= czero + 10 ) return false; if ( is_mantissa_full || tmp_mantissa / 10u != mantissa @@ -1024,7 +1265,7 @@ namespace boost found_number_before_exp = true; ++ length_since_last_delim; - } else if ( *begin == decimal_point || *begin == lowercase_e || *begin == capital_e) { + } else if (Traits::eq(*begin, decimal_point) || Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) { #ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE /* If ( we need to check grouping * and ( grouping missmatches @@ -1042,9 +1283,10 @@ namespace boost ) return false; #endif - if(*begin == decimal_point){ + if(Traits::eq(*begin, decimal_point)) { ++ begin; found_decimal = true; + if (!found_number_before_exp && begin==end) return false; continue; }else { if (!found_number_before_exp) return false; @@ -1052,7 +1294,7 @@ namespace boost } } #ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE - else if (grouping_size && *begin == thousands_sep){ + else if (grouping_size && Traits::eq(*begin, thousands_sep)){ if(found_grouping) { /* It is not he first time, when we find thousands separator, @@ -1094,16 +1336,16 @@ namespace boost } // Exponent found - if ( begin != end && ( *begin == lowercase_e || *begin == capital_e ) ) { + if ( begin != end && (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) ) { ++ begin; if ( begin == end ) return false; bool exp_has_minus = false; - if( *begin == minus ) { + if(Traits::eq(*begin, minus)) { exp_has_minus = true; ++ begin; if ( begin == end ) return false; - } else if (*begin == plus ) { + } else if (Traits::eq(*begin, plus)) { ++ begin; if ( begin == end ) return false; } @@ -1165,7 +1407,7 @@ namespace boost namespace detail { - struct do_not_construct_stringbuffer_t{}; + struct do_not_construct_out_stream_t{}; } namespace detail // optimized stream wrapper @@ -1177,25 +1419,27 @@ namespace boost > class lexical_stream_limited_src { - typedef stl_buf_unlocker, CharT > local_streambuffer_t; #if defined(BOOST_NO_STRINGSTREAM) - typedef stl_buf_unlocker local_stringbuffer_t; + typedef std::ostrstream out_stream_t; + typedef stl_buf_unlocker unlocked_but_t; #elif defined(BOOST_NO_STD_LOCALE) - typedef stl_buf_unlocker local_stringbuffer_t; + typedef std::ostringstream out_stream_t; + typedef stl_buf_unlocker unlocked_but_t; #else - typedef stl_buf_unlocker, CharT > local_stringbuffer_t; + typedef std::basic_ostringstream out_stream_t; + typedef stl_buf_unlocker, CharT> unlocked_but_t; #endif - typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< RequiresStringbuffer, - local_stringbuffer_t, - do_not_construct_stringbuffer_t - >::type deduced_stringbuffer_t; + out_stream_t, + do_not_construct_out_stream_t + >::type deduced_out_stream_t; // A string representation of Source is written to [start, finish). CharT* start; CharT* finish; - deduced_stringbuffer_t stringbuffer; + deduced_out_stream_t out_stream; public: lexical_stream_limited_src(CharT* sta, CharT* fin) @@ -1209,7 +1453,7 @@ namespace boost void operator=(lexical_stream_limited_src const&); /************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/ - bool shl_char(CharT ch) + bool shl_char(CharT ch) BOOST_NOEXCEPT { Traits::assign(*start, ch); finish = start + 1; @@ -1221,13 +1465,13 @@ namespace boost bool shl_char(T ch) { BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) , - "boost::lexical_cast does not support conversions from whar_t to char types." + "boost::lexical_cast does not support narrowing of char types." "Use boost::locale instead" ); #ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE std::locale loc; - wchar_t w = BOOST_USE_FACET(std::ctype, loc).widen(ch); + CharT const w = BOOST_USE_FACET(std::ctype, loc).widen(ch); #else - wchar_t w = ch; + CharT const w = static_cast(ch); #endif Traits::assign(*start, w); finish = start + 1; @@ -1235,31 +1479,42 @@ namespace boost } #endif - bool shl_char_array(CharT const* str) + bool shl_char_array(CharT const* str) BOOST_NOEXCEPT { start = const_cast(str); finish = start + Traits::length(str); return true; } -#ifndef BOOST_LCAST_NO_WCHAR_T template bool shl_char_array(T const* str) { BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)), - "boost::lexical_cast does not support conversions from wchar_t to char types." + "boost::lexical_cast does not support narrowing of char types." "Use boost::locale instead" ); return shl_input_streamable(str); } -#endif + + bool shl_char_array_limited(CharT const* str, std::size_t max_size) BOOST_NOEXCEPT + { + start = const_cast(str); + finish = std::find(start, start + max_size, Traits::to_char_type(0)); + return true; + } template bool shl_input_streamable(InputStreamable& input) { - std::basic_ostream stream(&stringbuffer); - bool const result = !(stream << input).fail(); - start = stringbuffer.pbase(); - finish = stringbuffer.pptr(); +#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE) + // If you have compilation error at this point, than your STL library + // does not support such conversions. Try updating it. + BOOST_STATIC_ASSERT((boost::is_same::value)); +#endif + bool const result = !(out_stream << input).fail(); + const unlocked_but_t* const p + = static_cast(out_stream.rdbuf()) ; + start = p->pbase(); + finish = p->pptr(); return result; } @@ -1276,110 +1531,105 @@ namespace boost return true; } -#if (defined _MSC_VER) -# pragma warning( push ) -// C4996: This function or variable may be unsafe. Consider using sprintf_s instead -# pragma warning( disable : 4996 ) -#endif - - template - bool shl_float(float val,T* out) - { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - finish = start + sprintf(out,"%.*g", static_cast(boost::detail::lcast_get_precision()), val ); - return finish > start; + template + bool shl_real_type(const T& val, SomeCharT* begin, SomeCharT*& end) + { + if (put_inf_nan(begin, end, val)) return true; + lcast_set_precision(out_stream, &val); + return shl_input_streamable(val); } - template - bool shl_double(double val,T* out) + static bool shl_real_type(float val, char* begin, char*& end) { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - finish = start + sprintf(out,"%.*lg", static_cast(boost::detail::lcast_get_precision()), val ); - return finish > start; - } -#ifndef __MINGW32__ - template - bool shl_long_double(long double val,T* out) - { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - finish = start + sprintf(out,"%.*Lg", static_cast(boost::detail::lcast_get_precision()), val ); - return finish > start; - } + if (put_inf_nan(begin, end, val)) return true; + const double val_as_double = val; + end = begin + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) + sprintf_s(begin, end-begin, +#else + sprintf(begin, #endif - -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif - - -#ifndef BOOST_LCAST_NO_WCHAR_T - bool shl_float(float val,wchar_t* out) - { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - finish = start + swprintf(out, -#if !defined(__MINGW32__) && !defined(UNDER_CE) - finish-start, -#endif - L"%.*g", static_cast(boost::detail::lcast_get_precision()), val ); - - return finish > start; + "%.*g", static_cast(boost::detail::lcast_get_precision()), val_as_double); + return end > begin; } - - bool shl_double(double val,wchar_t* out) + static bool shl_real_type(double val, char* begin, char*& end) { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - /* __MINGW32__ is defined for both mingw.org and for mingw-w64. - * For mingw-w64, __MINGW64__ is defined, too, when targetting - * 64 bits. - * - * swprintf realization in MinGW and under WinCE does not conform - * to the ISO C - * Standard. - */ - finish = start + swprintf(out, -#if !defined(__MINGW32__) && !defined(UNDER_CE) - finish-start, + if (put_inf_nan(begin, end, val)) return true; + end = begin + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) + sprintf_s(begin, end-begin, +#else + sprintf(begin, #endif - L"%.*lg", static_cast(boost::detail::lcast_get_precision()), val ); - return finish > start; + "%.*g", static_cast(boost::detail::lcast_get_precision()), val); + return end > begin; } #ifndef __MINGW32__ - bool shl_long_double(long double val,wchar_t* out) + static bool shl_real_type(long double val, char* begin, char*& end) { using namespace std; - if (put_inf_nan(start,finish,val)) return true; - finish = start + swprintf(out, -#if !defined(UNDER_CE) - finish-start, + if (put_inf_nan(begin, end, val)) return true; + end = begin + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) + sprintf_s(begin, end-begin, +#else + sprintf(begin, #endif + "%.*Lg", static_cast(boost::detail::lcast_get_precision()), val ); + return end > begin; + } +#endif + + +#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__) + static bool shl_real_type(float val, wchar_t* begin, wchar_t*& end) + { using namespace std; + if (put_inf_nan(begin, end, val)) return true; + const double val_as_double = val; + end = begin + swprintf(begin, end-begin, + L"%.*g", + static_cast(boost::detail::lcast_get_precision()), + val_as_double ); + return end > begin; + } + + static bool shl_real_type(double val, wchar_t* begin, wchar_t*& end) + { using namespace std; + if (put_inf_nan(begin, end, val)) return true; + end = begin + swprintf(begin, end-begin, + L"%.*g", static_cast(boost::detail::lcast_get_precision()), val ); + return end > begin; + } + + static bool shl_real_type(long double val, wchar_t* begin, wchar_t*& end) + { using namespace std; + if (put_inf_nan(begin, end, val)) return true; + end = begin + swprintf(begin, end-begin, L"%.*Lg", static_cast(boost::detail::lcast_get_precision()), val ); - return finish > start; + return end > begin; } #endif -#endif - /************************************ OPERATORS << ( ... ) ********************************/ public: template - bool operator<<(std::basic_string const& str) + bool operator<<(std::basic_string const& str) BOOST_NOEXCEPT { start = const_cast(str.data()); finish = start + str.length(); return true; } -#if !defined(__SUNPRO_CC) template - bool operator<<(::boost::container::basic_string const& str) + bool operator<<(boost::container::basic_string const& str) BOOST_NOEXCEPT { start = const_cast(str.data()); finish = start + str.length(); return true; } -#endif // !defined(__SUNPRO_CC) - bool operator<<(bool value) + + bool operator<<(bool value) BOOST_NOEXCEPT { CharT const czero = lcast_char_constants::zero; Traits::assign(*start, Traits::to_char_type(czero + value)); @@ -1387,6 +1637,52 @@ namespace boost return true; } + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + start = rng.begin(); + finish = rng.end(); + return true; + } + + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + start = const_cast(rng.begin()); + finish = const_cast(rng.end()); + return true; + } + + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + return (*this) << iterator_range( + const_cast(reinterpret_cast(rng.begin())), + const_cast(reinterpret_cast(rng.end())) + ); + } + + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + return (*this) << iterator_range( + const_cast(reinterpret_cast(rng.begin())), + const_cast(reinterpret_cast(rng.end())) + ); + } + + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + return (*this) << iterator_range( + reinterpret_cast(rng.begin()), + reinterpret_cast(rng.end()) + ); + } + + bool operator<<(const iterator_range& rng) BOOST_NOEXCEPT + { + return (*this) << iterator_range( + reinterpret_cast(rng.begin()), + reinterpret_cast(rng.end()) + ); + } + bool operator<<(char ch) { return shl_char(ch); } bool operator<<(unsigned char ch) { return ((*this) << static_cast(ch)); } bool operator<<(signed char ch) { return ((*this) << static_cast(ch)); } @@ -1396,6 +1692,16 @@ namespace boost #ifndef BOOST_NO_INTRINSIC_WCHAR_T bool operator<<(wchar_t ch) { return shl_char(ch); } #endif +#endif +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) + bool operator<<(char16_t ch) { return shl_char(ch); } + bool operator<<(char16_t * str) { return shl_char_array(str); } + bool operator<<(char16_t const * str) { return shl_char_array(str); } +#endif +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) + bool operator<<(char32_t ch) { return shl_char(ch); } + bool operator<<(char32_t * str) { return shl_char_array(str); } + bool operator<<(char32_t const * str) { return shl_char_array(str); } #endif bool operator<<(unsigned char const* ch) { return ((*this) << reinterpret_cast(ch)); } bool operator<<(unsigned char * ch) { return ((*this) << reinterpret_cast(ch)); } @@ -1417,17 +1723,73 @@ namespace boost bool operator<<(unsigned __int64 n) { start = lcast_put_unsigned(n, finish); return true; } bool operator<<( __int64 n) { return shl_signed(n); } #endif - bool operator<<(float val) { return shl_float(val,start); } - bool operator<<(double val) { return shl_double(val,start); } + bool operator<<(float val) { return shl_real_type(val, start, finish); } + bool operator<<(double val) { return shl_real_type(val, start, finish); } bool operator<<(long double val) { #ifndef __MINGW32__ - return shl_long_double(val,start); + return shl_real_type(val, start, finish); #else - return shl_double(val,start); + return shl_real_type(static_cast(val), start, finish); #endif } + + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return shl_char_array_limited(input.begin(), N); } - template + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return shl_char_array_limited(input.begin(), N); } + + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(boost::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + +#ifndef BOOST_NO_CXX11_HDR_ARRAY + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { + if (input.size()) return shl_char_array_limited(&input[0], N); + else return true; + } + + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { + if (input.size()) return shl_char_array_limited(&input[0], N); + else return true; + } + + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } + + template + bool operator<<(std::array const& input) BOOST_NOEXCEPT + { return ((*this) << reinterpret_cast const& >(input)); } +#endif + + template bool operator<<(const InStreamable& input) { return shl_input_streamable(input); } /************************************ HELPER FUNCTIONS FOR OPERATORS >> ( ... ) ********************************/ @@ -1452,19 +1814,11 @@ namespace boost } bool const succeed = lcast_ret_unsigned(output, start, finish); -#if (defined _MSC_VER) -# pragma warning( push ) -// C4146: unary minus operator applied to unsigned type, result still unsigned -# pragma warning( disable : 4146 ) -#elif defined( __BORLANDC__ ) -# pragma option push -w-8041 -#endif - if (has_minus) output = static_cast(-output); -#if (defined _MSC_VER) -# pragma warning( pop ) -#elif defined( __BORLANDC__ ) -# pragma option pop -#endif + + if (has_minus) { + output = static_cast(0u - output); + } + return succeed; } @@ -1490,21 +1844,9 @@ namespace boost bool succeed = lcast_ret_unsigned(out_tmp, start, finish); if (has_minus) { -#if (defined _MSC_VER) -# pragma warning( push ) -// C4146: unary minus operator applied to unsigned type, result still unsigned -# pragma warning( disable : 4146 ) -#elif defined( __BORLANDC__ ) -# pragma option push -w-8041 -#endif - utype const comp_val = static_cast(-(std::numeric_limits::min)()); + utype const comp_val = (static_cast(1) << std::numeric_limits::digits); succeed = succeed && out_tmp<=comp_val; - output = -out_tmp; -#if (defined _MSC_VER) -# pragma warning( pop ) -#elif defined( __BORLANDC__ ) -# pragma option pop -#endif + output = static_cast(0u - out_tmp); } else { utype const comp_val = static_cast((std::numeric_limits::max)()); succeed = succeed && out_tmp<=comp_val; @@ -1524,9 +1866,22 @@ namespace boost if(is_pointer::value) return false; - local_streambuffer_t bb; - bb.setg(start, start, finish); - std::basic_istream stream(&bb); +#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE) + // If you have compilation error at this point, than your STL library + // unsupports such conversions. Try updating it. + BOOST_STATIC_ASSERT((boost::is_same::value)); +#endif + +#if defined(BOOST_NO_STRINGSTREAM) + std::istrstream stream(start, finish - start); +#elif defined(BOOST_NO_STD_LOCALE) + std::istringstream stream; +#else + std::basic_istringstream stream; +#endif + static_cast(stream.rdbuf()) + ->setg(start, start, finish); + stream.unsetf(std::ios::skipws); lcast_set_precision(stream, static_cast(0)); #if (defined _MSC_VER) @@ -1549,10 +1904,10 @@ namespace boost inline bool shr_xchar(T& output) { BOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ), - "boost::lexical_cast does not support conversions from whar_t to char types." + "boost::lexical_cast does not support narrowing of character types." "Use boost::locale instead" ); bool const ok = (finish - start == 1); - if(ok) { + if (ok) { CharT out; Traits::assign(out, *start); output = static_cast(out); @@ -1581,31 +1936,81 @@ namespace boost #if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) bool operator>>(wchar_t& output) { return shr_xchar(output); } #endif -#ifndef BOOST_NO_CHAR16_T +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) bool operator>>(char16_t& output) { return shr_xchar(output); } #endif -#ifndef BOOST_NO_CHAR32_T +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) bool operator>>(char32_t& output) { return shr_xchar(output); } #endif -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - bool operator>>(std::string& str) { str.assign(start, finish); return true; } -# ifndef BOOST_LCAST_NO_WCHAR_T - bool operator>>(std::wstring& str) { str.assign(start, finish); return true; } -# endif -#else template bool operator>>(std::basic_string& str) { str.assign(start, finish); return true; } -#if !defined(__SUNPRO_CC) + template - bool operator>>(::boost::container::basic_string& str) { str.assign(start, finish); return true; } -#endif // !defined(__SUNPRO_CC) + bool operator>>(boost::container::basic_string& str) { str.assign(start, finish); return true; } + + + private: + template + bool shr_std_array(ArrayT& output) BOOST_NOEXCEPT + { + using namespace std; + const std::size_t size = finish - start; + if (size > N - 1) { // `-1` because we need to store \0 at the end + return false; + } + + memcpy(&output[0], start, size * sizeof(CharT)); + output[size] = Traits::to_char_type(0); + return true; + } + + public: + + template + bool operator>>(boost::array& output) BOOST_NOEXCEPT + { + return shr_std_array(output); + } + + template + bool operator>>(boost::array& output) + { + return ((*this) >> reinterpret_cast& >(output)); + } + + template + bool operator>>(boost::array& output) + { + return ((*this) >> reinterpret_cast& >(output)); + } + +#ifndef BOOST_NO_CXX11_HDR_ARRAY + template + bool operator>>(std::array& output) BOOST_NOEXCEPT + { + return shr_std_array(output); + } + + template + bool operator>>(std::array& output) + { + return ((*this) >> reinterpret_cast& >(output)); + } + + template + bool operator>>(std::array& output) + { + return ((*this) >> reinterpret_cast& >(output)); + } #endif + + /* * case "-0" || "0" || "+0" : output = false; return true; * case "1" || "+1": output = true; return true; * default: return false; */ - bool operator>>(bool& output) + bool operator>>(bool& output) BOOST_NOEXCEPT { CharT const zero = lcast_char_constants::zero; CharT const plus = lcast_char_constants::plus; @@ -1655,10 +2060,10 @@ namespace boost CharT const lowercase_e = lcast_char_constants::lowercase_e; if ( return_value && ( - *(finish-1) == lowercase_e // 1.0e - || *(finish-1) == capital_e // 1.0E - || *(finish-1) == minus // 1.0e- or 1.0E- - || *(finish-1) == plus // 1.0e+ or 1.0E+ + Traits::eq(*(finish-1), lowercase_e) // 1.0e + || Traits::eq(*(finish-1), capital_e) // 1.0E + || Traits::eq(*(finish-1), minus) // 1.0e- or 1.0E- + || Traits::eq(*(finish-1), plus) // 1.0e+ or 1.0E+ ) ) return false; @@ -1681,7 +2086,7 @@ namespace boost * */ boost::mpl::if_c< #if defined(BOOST_HAS_LONG_LONG) || defined(BOOST_HAS_MS_INT64) - ::boost::type_traits::ice_eq< sizeof(double), sizeof(long double) >::value, + boost::type_traits::ice_eq< sizeof(double), sizeof(long double) >::value, #else 0 #endif @@ -1705,24 +2110,8 @@ namespace boost }; } -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // call-by-const reference version - namespace detail { - template - struct array_to_pointer_decay - { - typedef T type; - }; - - template - struct array_to_pointer_decay - { - typedef const T * type; - }; - template struct is_stdstring { @@ -1734,62 +2123,25 @@ namespace boost { BOOST_STATIC_CONSTANT(bool, value = true ); }; -#if !defined(__SUNPRO_CC) + template - struct is_stdstring< ::boost::container::basic_string > + struct is_stdstring< boost::container::basic_string > { BOOST_STATIC_CONSTANT(bool, value = true ); }; -#endif // !defined(__SUNPRO_CC) - template - struct is_char_or_wchar - { - private: -#ifndef BOOST_LCAST_NO_WCHAR_T - typedef wchar_t wchar_t_if_supported; -#else - typedef char wchar_t_if_supported; -#endif - -#ifndef BOOST_NO_CHAR16_T - typedef char16_t char16_t_if_supported; -#else - typedef char char16_t_if_supported; -#endif - -#ifndef BOOST_NO_CHAR32_T - typedef char32_t char32_t_if_supported; -#else - typedef char char32_t_if_supported; -#endif - public: - - BOOST_STATIC_CONSTANT(bool, value = - ( - ::boost::type_traits::ice_or< - is_same< T, char >::value, - is_same< T, wchar_t_if_supported >::value, - is_same< T, char16_t_if_supported >::value, - is_same< T, char32_t_if_supported >::value, - is_same< T, unsigned char >::value, - is_same< T, signed char >::value - >::value - ) - ); - }; template struct is_arithmetic_and_not_xchars { BOOST_STATIC_CONSTANT(bool, value = ( - ::boost::type_traits::ice_and< - is_arithmetic::value, - is_arithmetic::value, - ::boost::type_traits::ice_not< + boost::type_traits::ice_and< + boost::is_arithmetic::value, + boost::is_arithmetic::value, + boost::type_traits::ice_not< detail::is_char_or_wchar::value >::value, - ::boost::type_traits::ice_not< + boost::type_traits::ice_not< detail::is_char_or_wchar::value >::value >::value @@ -1807,14 +2159,14 @@ namespace boost { BOOST_STATIC_CONSTANT(bool, value = ( - ::boost::type_traits::ice_or< - ::boost::type_traits::ice_and< + boost::type_traits::ice_or< + boost::type_traits::ice_and< is_same::value, is_char_or_wchar::value >::value, - ::boost::type_traits::ice_and< - ::boost::type_traits::ice_eq< sizeof(char),sizeof(Target)>::value, - ::boost::type_traits::ice_eq< sizeof(char),sizeof(Source)>::value, + boost::type_traits::ice_and< + boost::type_traits::ice_eq< sizeof(char),sizeof(Target)>::value, + boost::type_traits::ice_eq< sizeof(char),sizeof(Source)>::value, is_char_or_wchar::value, is_char_or_wchar::value >::value @@ -1840,19 +2192,18 @@ namespace boost { BOOST_STATIC_CONSTANT(bool, value = true ); }; -#if !defined(__SUNPRO_CC) + template - struct is_char_array_to_stdstring< ::boost::container::basic_string, CharT* > + struct is_char_array_to_stdstring< boost::container::basic_string, CharT* > { BOOST_STATIC_CONSTANT(bool, value = true ); }; template - struct is_char_array_to_stdstring< ::boost::container::basic_string, const CharT* > + struct is_char_array_to_stdstring< boost::container::basic_string, const CharT* > { BOOST_STATIC_CONSTANT(bool, value = true ); }; -#endif // !defined(__SUNPRO_CC) #if (defined _MSC_VER) # pragma warning( push ) @@ -1865,60 +2216,26 @@ namespace boost { static inline Target lexical_cast_impl(const Source& arg) { - typedef BOOST_DEDUCED_TYPENAME detail::array_to_pointer_decay::type src; + typedef lexical_cast_stream_traits stream_trait; + + typedef detail::lexical_stream_limited_src< + BOOST_DEDUCED_TYPENAME stream_trait::char_type, + BOOST_DEDUCED_TYPENAME stream_trait::traits, + stream_trait::requires_stringbuf + > interpreter_type; - typedef BOOST_DEDUCED_TYPENAME detail::widest_char< - BOOST_DEDUCED_TYPENAME detail::stream_char::type - , BOOST_DEDUCED_TYPENAME detail::stream_char::type - >::type char_type; + // Target type must be default constructible + Target result; - typedef detail::lcast_src_length lcast_src_length; - std::size_t const src_len = lcast_src_length::value; - char_type buf[src_len + 1]; - lcast_src_length::check_coverage(); + BOOST_DEDUCED_TYPENAME stream_trait::char_type buf[stream_trait::len_t::value + 1]; + stream_trait::len_t::check_coverage(); - typedef BOOST_DEDUCED_TYPENAME - deduce_char_traits::type traits; + interpreter_type interpreter(buf, buf + stream_trait::len_t::value + 1); - typedef BOOST_DEDUCED_TYPENAME remove_pointer::type removed_ptr_t; - - // is_char_types_match variable value can be computed via - // sizeof(char_type) == sizeof(removed_ptr_t). But when - // removed_ptr_t is an incomplete type or void*, compilers - // produce warnings or errors. - const bool is_char_types_match = - (::boost::type_traits::ice_or< - ::boost::type_traits::ice_and< - ::boost::type_traits::ice_eq::value, - ::boost::type_traits::ice_or< - ::boost::is_same::value, - ::boost::is_same::value, - ::boost::is_same::value - >::value - >::value, - is_same::value - >::value); - - const bool requires_stringbuf = - !( - ::boost::type_traits::ice_or< - is_stdstring::value, - is_arithmetic::value, - ::boost::type_traits::ice_and< - is_pointer::value, - is_char_or_wchar::value, - is_char_types_match - >::value - >::value - ); - - detail::lexical_stream_limited_src - interpreter(buf, buf + src_len); - - Target result; // Disabling ADL, by directly specifying operators. if(!(interpreter.operator <<(arg) && interpreter.operator >>(result))) BOOST_LCAST_THROW_BAD_CAST(Source, Target); + return result; } }; @@ -1926,88 +2243,89 @@ namespace boost # pragma warning( pop ) #endif - template + template struct lexical_cast_copy { - static inline Source lexical_cast_impl(const Source &arg) + static inline const Source& lexical_cast_impl(const Source &arg) BOOST_NOEXCEPT { return arg; } }; - class precision_loss_error : public boost::numeric::bad_numeric_cast + template + struct detect_precision_loss { - public: - virtual const char * what() const throw() - { return "bad numeric conversion: precision loss error"; } - }; + typedef boost::numeric::Trunc Rounder; + typedef Source source_type ; - template - struct throw_on_precision_loss - { - typedef boost::numeric::Trunc Rounder; - typedef S source_type ; - - typedef typename mpl::if_< is_arithmetic,S,S const&>::type argument_type ; + typedef BOOST_DEDUCED_TYPENAME mpl::if_< + boost::is_arithmetic, Source, Source const& + >::type argument_type ; static source_type nearbyint ( argument_type s ) { - source_type orig_div_round = s / Rounder::nearbyint(s); + const source_type near_int = Rounder::nearbyint(s); + if (near_int) { + const source_type orig_div_round = s / near_int; + const source_type eps = std::numeric_limits::epsilon(); + + if ((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps) + BOOST_LCAST_THROW_BAD_CAST(Source, Target); + } - if ( (orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > std::numeric_limits::epsilon() ) - BOOST_THROW_EXCEPTION( precision_loss_error() ); return s ; } typedef typename Rounder::round_style round_style; } ; - template + template + struct nothrow_overflow_handler + { + void operator() ( boost::numeric::range_check_result r ) + { + if (r != boost::numeric::cInRange) + BOOST_LCAST_THROW_BAD_CAST(Source, Target); + } + } ; + + template struct lexical_cast_dynamic_num_not_ignoring_minus { static inline Target lexical_cast_impl(const Source &arg) { - try{ - typedef boost::numeric::converter< - Target, - Source, - boost::numeric::conversion_traits, - boost::numeric::def_overflow_handler, - throw_on_precision_loss - > Converter ; - - return Converter::convert(arg); - } catch( ::boost::numeric::bad_numeric_cast const& ) { - BOOST_LCAST_THROW_BAD_CAST(Source, Target); - } - BOOST_UNREACHABLE_RETURN(static_cast(0)); + return boost::numeric::converter< + Target, + Source, + boost::numeric::conversion_traits, + nothrow_overflow_handler, + detect_precision_loss + >::convert(arg); } }; - template + template struct lexical_cast_dynamic_num_ignoring_minus { static inline Target lexical_cast_impl(const Source &arg) { - try{ - typedef boost::numeric::converter< - Target, - Source, - boost::numeric::conversion_traits, - boost::numeric::def_overflow_handler, - throw_on_precision_loss - > Converter ; + typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if_c< + boost::is_float::value, + boost::mpl::identity, + boost::make_unsigned + >::type usource_t; - bool has_minus = ( arg < 0); - if ( has_minus ) { - return static_cast(-Converter::convert(-arg)); - } else { - return Converter::convert(arg); - } - } catch( ::boost::numeric::bad_numeric_cast const& ) { - BOOST_LCAST_THROW_BAD_CAST(Source, Target); - } - BOOST_UNREACHABLE_RETURN(static_cast(0)); + typedef boost::numeric::converter< + Target, + usource_t, + boost::numeric::conversion_traits, + nothrow_overflow_handler, + detect_precision_loss + > converter_t; + + return ( + arg < 0 ? 0u - converter_t::convert(0u - arg) : converter_t::convert(arg) + ); } }; @@ -2029,24 +2347,24 @@ namespace boost * optional, so if a negative number is read, no errors will arise * and the result will be the two's complement. */ - template + template struct lexical_cast_dynamic_num { static inline Target lexical_cast_impl(const Source &arg) { - typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c< - ::boost::type_traits::ice_and< - ::boost::type_traits::ice_or< - ::boost::is_signed::value, - ::boost::is_float::value + typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + boost::type_traits::ice_and< + boost::type_traits::ice_or< + boost::is_signed::value, + boost::is_float::value >::value, - ::boost::type_traits::ice_not< - is_same::value + boost::type_traits::ice_not< + boost::is_same::value >::value, - ::boost::type_traits::ice_not< - is_same::value + boost::type_traits::ice_not< + boost::is_same::value >::value, - ::boost::is_unsigned::value + boost::is_unsigned::value >::value, lexical_cast_dynamic_num_ignoring_minus, lexical_cast_dynamic_num_not_ignoring_minus @@ -2057,40 +2375,91 @@ namespace boost }; } - template + template inline Target lexical_cast(const Source &arg) { - typedef BOOST_DEDUCED_TYPENAME detail::array_to_pointer_decay::type src; + typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay::type src; - typedef BOOST_DEDUCED_TYPENAME ::boost::type_traits::ice_or< - detail::is_xchar_to_xchar::value, - detail::is_char_array_to_stdstring::value, - ::boost::type_traits::ice_and< - is_same::value, - detail::is_stdstring::value + typedef BOOST_DEDUCED_TYPENAME boost::type_traits::ice_or< + boost::detail::is_xchar_to_xchar::value, + boost::detail::is_char_array_to_stdstring::value, + boost::type_traits::ice_and< + boost::is_same::value, + boost::detail::is_stdstring::value >::value - > do_copy_type; + > shall_we_copy_t; typedef BOOST_DEDUCED_TYPENAME - detail::is_arithmetic_and_not_xchars do_copy_with_dynamic_check_type; + boost::detail::is_arithmetic_and_not_xchars shall_we_copy_with_dynamic_check_t; - typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c< - do_copy_type::value, - detail::lexical_cast_copy, - BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c< - do_copy_with_dynamic_check_type::value, - detail::lexical_cast_dynamic_num, - detail::lexical_cast_do_cast + typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + shall_we_copy_t::value, + boost::detail::lexical_cast_copy, + BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + shall_we_copy_with_dynamic_check_t::value, + boost::detail::lexical_cast_dynamic_num, + boost::detail::lexical_cast_do_cast >::type >::type caster_type; return caster_type::lexical_cast_impl(arg); } - #else - - namespace detail // stream wrapper for handling lexical conversions + template + inline Target lexical_cast(const CharType* chars, std::size_t count) { + BOOST_STATIC_ASSERT_MSG(boost::detail::is_char_or_wchar::value, + "CharType must be a character or wide character type"); + + return boost::lexical_cast( + boost::iterator_range(chars, chars + count) + ); + } + +} // namespace boost + +#else // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace boost { + namespace detail + { + + // selectors for choosing stream character type + template + struct stream_char + { + typedef char type; + }; + +#ifndef BOOST_LCAST_NO_WCHAR_T +#ifndef BOOST_NO_INTRINSIC_WCHAR_T + template<> + struct stream_char + { + typedef wchar_t type; + }; +#endif + + template<> + struct stream_char + { + typedef wchar_t type; + }; + + template<> + struct stream_char + { + typedef wchar_t type; + }; + + template<> + struct stream_char + { + typedef wchar_t type; + }; +#endif + + // stream wrapper for handling lexical conversions template class lexical_stream { @@ -2180,8 +2549,9 @@ namespace boost return result; } - #endif -} +} // namespace boost + +#endif // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. @@ -2191,5 +2561,8 @@ namespace boost // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) +#undef BOOST_LCAST_THROW_BAD_CAST #undef BOOST_LCAST_NO_WCHAR_T -#endif + +#endif // BOOST_LEXICAL_CAST_INCLUDED + diff --git a/boost/boost/math/policies/policy.hpp b/boost/boost/math/policies/policy.hpp index 70e67c70ba..01fe3d0ae0 100644 --- a/boost/boost/math/policies/policy.hpp +++ b/boost/boost/math/policies/policy.hpp @@ -431,7 +431,7 @@ public: // // Mathematically undefined properties: // - typedef typename detail::find_arg, discrete_quantile<> >::type assert_undefined_type; + typedef typename detail::find_arg, assert_undefined<> >::type assert_undefined_type; // // Max iterations: // @@ -537,12 +537,12 @@ private: // // Mathematically undefined properties: // - typedef typename detail::find_arg, discrete_quantile<> >::type assert_undefined_type; + typedef typename detail::find_arg, typename Policy::assert_undefined_type >::type assert_undefined_type; // // Max iterations: // - typedef typename detail::find_arg, max_series_iterations<> >::type max_series_iterations_type; - typedef typename detail::find_arg, max_root_iterations<> >::type max_root_iterations_type; + typedef typename detail::find_arg, typename Policy::max_series_iterations_type>::type max_series_iterations_type; + typedef typename detail::find_arg, typename Policy::max_root_iterations_type>::type max_root_iterations_type; // // Define a typelist of the policies: // diff --git a/boost/boost/math/special_functions/fpclassify.hpp b/boost/boost/math/special_functions/fpclassify.hpp index 2abec5fa84..a71ae36c8c 100644 --- a/boost/boost/math/special_functions/fpclassify.hpp +++ b/boost/boost/math/special_functions/fpclassify.hpp @@ -234,9 +234,8 @@ int fpclassify_imp BOOST_NO_MACRO_EXPAND(T x, ieee_copy_leading_bits_tag) return FP_NAN; } -#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) -template <> -inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) +#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && (defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)) +inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) { return boost::math::detail::fpclassify_imp(t, generic_tag()); } @@ -249,15 +248,33 @@ inline int fpclassify BOOST_NO_MACRO_EXPAND(T t) { typedef typename detail::fp_traits::type traits; typedef typename traits::method method; + typedef typename tools::promote_args::type value_type; #ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS if(std::numeric_limits::is_specialized && detail::is_generic_tag_false(static_cast(0))) - return detail::fpclassify_imp(t, detail::generic_tag()); - return detail::fpclassify_imp(t, method()); + return detail::fpclassify_imp(static_cast(t), detail::generic_tag()); + return detail::fpclassify_imp(static_cast(t), method()); #else - return detail::fpclassify_imp(t, method()); + return detail::fpclassify_imp(static_cast(t), method()); #endif } +#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS +template <> +inline int fpclassify BOOST_NO_MACRO_EXPAND(long double t) +{ + typedef detail::fp_traits::type traits; + typedef traits::method method; + typedef long double value_type; +#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS + if(std::numeric_limits::is_specialized && detail::is_generic_tag_false(static_cast(0))) + return detail::fpclassify_imp(static_cast(t), detail::generic_tag()); + return detail::fpclassify_imp(static_cast(t), method()); +#else + return detail::fpclassify_imp(static_cast(t), method()); +#endif +} +#endif + namespace detail { #ifdef BOOST_MATH_USE_STD_FPCLASSIFY @@ -297,8 +314,7 @@ namespace detail { } #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) -template <> -inline bool isfinite_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) +inline bool isfinite_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) { return boost::math::detail::isfinite_impl(t, generic_tag()); } @@ -312,9 +328,22 @@ inline bool (isfinite)(T x) typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; - return detail::isfinite_impl(x, method()); + typedef typename tools::promote_args::type value_type; + return detail::isfinite_impl(static_cast(x), method()); } +#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS +template<> +inline bool (isfinite)(long double x) +{ //!< \brief return true if floating-point type t is finite. + typedef detail::fp_traits::type traits; + typedef traits::method method; + typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isfinite_impl(static_cast(x), method()); +} +#endif + //------------------------------------------------------------------------------ namespace detail { @@ -356,8 +385,7 @@ namespace detail { } #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) -template <> -inline bool isnormal_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) +inline bool isnormal_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) { return boost::math::detail::isnormal_impl(t, generic_tag()); } @@ -371,9 +399,22 @@ inline bool (isnormal)(T x) typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; - return detail::isnormal_impl(x, method()); + typedef typename tools::promote_args::type value_type; + return detail::isnormal_impl(static_cast(x), method()); } +#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS +template<> +inline bool (isnormal)(long double x) +{ + typedef detail::fp_traits::type traits; + typedef traits::method method; + typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isnormal_impl(static_cast(x), method()); +} +#endif + //------------------------------------------------------------------------------ namespace detail { @@ -433,8 +474,7 @@ namespace detail { } #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) -template <> -inline bool isinf_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) +inline bool isinf_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&) { return boost::math::detail::isinf_impl(t, generic_tag()); } @@ -448,9 +488,22 @@ inline bool (isinf)(T x) typedef typename detail::fp_traits::type traits; typedef typename traits::method method; typedef typename boost::is_floating_point::type fp_tag; - return detail::isinf_impl(x, method()); + typedef typename tools::promote_args::type value_type; + return detail::isinf_impl(static_cast(x), method()); } +#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS +template<> +inline bool (isinf)(long double x) +{ + typedef detail::fp_traits::type traits; + typedef traits::method method; + typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isinf_impl(static_cast(x), method()); +} +#endif + //------------------------------------------------------------------------------ namespace detail { @@ -512,7 +565,8 @@ namespace detail { } // namespace detail -template bool (isnan)(T x) +template +inline bool (isnan)(T x) { //!< \brief return true if floating-point type t is NaN (Not A Number). typedef typename detail::fp_traits::type traits; typedef typename traits::method method; @@ -524,6 +578,15 @@ template bool (isnan)(T x) template <> inline bool isnan BOOST_NO_MACRO_EXPAND(float t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); } template <> inline bool isnan BOOST_NO_MACRO_EXPAND(double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); } template <> inline bool isnan BOOST_NO_MACRO_EXPAND(long double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); } +#elif defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) +template<> +inline bool (isnan)(long double x) +{ //!< \brief return true if floating-point type t is NaN (Not A Number). + typedef detail::fp_traits::type traits; + typedef traits::method method; + typedef boost::is_floating_point::type fp_tag; + return detail::isnan_impl(x, method()); +} #endif } // namespace math diff --git a/boost/boost/math/special_functions/math_fwd.hpp b/boost/boost/math/special_functions/math_fwd.hpp index 14364a3d5c..6669e3fe39 100644 --- a/boost/boost/math/special_functions/math_fwd.hpp +++ b/boost/boost/math/special_functions/math_fwd.hpp @@ -614,6 +614,54 @@ namespace boost template typename detail::bessel_traits >::result_type sph_neumann(unsigned v, T x); + template + std::complex::result_type> cyl_hankel_1(T1 v, T2 x, const Policy& pol); + + template + std::complex >::result_type> cyl_hankel_1(T1 v, T2 x); + + template + std::complex::result_type> cyl_hankel_2(T1 v, T2 x, const Policy& pol); + + template + std::complex >::result_type> cyl_hankel_2(T1 v, T2 x); + + template + std::complex::result_type> sph_hankel_1(T1 v, T2 x, const Policy& pol); + + template + std::complex >::result_type> sph_hankel_1(T1 v, T2 x); + + template + std::complex::result_type> sph_hankel_2(T1 v, T2 x, const Policy& pol); + + template + std::complex >::result_type> sph_hankel_2(T1 v, T2 x); + + template + typename tools::promote_args::type airy_ai(T x, const Policy&); + + template + typename tools::promote_args::type airy_ai(T x); + + template + typename tools::promote_args::type airy_bi(T x, const Policy&); + + template + typename tools::promote_args::type airy_bi(T x); + + template + typename tools::promote_args::type airy_ai_prime(T x, const Policy&); + + template + typename tools::promote_args::type airy_ai_prime(T x); + + template + typename tools::promote_args::type airy_bi_prime(T x, const Policy&); + + template + typename tools::promote_args::type airy_bi_prime(T x); + template typename tools::promote_args::type sin_pi(T x, const Policy&); @@ -681,6 +729,93 @@ namespace boost template typename tools::promote_args::type zeta(T s, const Policy&); + // Owen's T function: + template + typename tools::promote_args::type owens_t(T1 h, T2 a, const Policy& pol); + + template + typename tools::promote_args::type owens_t(T1 h, T2 a); + + // Jacobi Functions: + template + typename tools::promote_args::type jacobi_elliptic(T k, T theta, T* pcn, T* pdn, const Policy&); + + template + typename tools::promote_args::type jacobi_elliptic(T k, T theta, T* pcn = 0, T* pdn = 0); + + template + typename tools::promote_args::type jacobi_sn(U k, T theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_sn(U k, T theta); + + template + typename tools::promote_args::type jacobi_cn(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_cn(T k, U theta); + + template + typename tools::promote_args::type jacobi_dn(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_dn(T k, U theta); + + template + typename tools::promote_args::type jacobi_cd(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_cd(T k, U theta); + + template + typename tools::promote_args::type jacobi_dc(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_dc(T k, U theta); + + template + typename tools::promote_args::type jacobi_ns(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_ns(T k, U theta); + + template + typename tools::promote_args::type jacobi_sd(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_sd(T k, U theta); + + template + typename tools::promote_args::type jacobi_ds(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_ds(T k, U theta); + + template + typename tools::promote_args::type jacobi_nc(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_nc(T k, U theta); + + template + typename tools::promote_args::type jacobi_nd(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_nd(T k, U theta); + + template + typename tools::promote_args::type jacobi_sc(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_sc(T k, U theta); + + template + typename tools::promote_args::type jacobi_cs(T k, U theta, const Policy& pol); + + template + typename tools::promote_args::type jacobi_cs(T k, U theta); + + template typename tools::promote_args::type zeta(T s); @@ -1063,6 +1198,97 @@ namespace boost template T float_next(const T& a){ return boost::math::float_next(a, Policy()); }\ template T float_prior(const T& a){ return boost::math::float_prior(a, Policy()); }\ template T float_distance(const T& a, const T& b){ return boost::math::float_distance(a, b, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type owens_t(RT1 a, RT2 z){ return boost::math::owens_t(a, z, Policy()); }\ + \ + template \ + inline std::complex::result_type> cyl_hankel_1(T1 v, T2 x)\ + { return boost::math::cyl_hankel_1(v, x, Policy()); }\ + \ + template \ + inline std::complex::result_type> cyl_hankel_2(T1 v, T2 x)\ + { return boost::math::cyl_hankel_2(v, x, Policy()); }\ + \ + template \ + inline std::complex::result_type> sph_hankel_1(T1 v, T2 x)\ + { return boost::math::sph_hankel_1(v, x, Policy()); }\ + \ + template \ + inline std::complex::result_type> sph_hankel_2(T1 v, T2 x)\ + { return boost::math::sph_hankel_2(v, x, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_elliptic(T k, T theta, T* pcn, T* pdn)\ + { return boost::math::jacobi_elliptic(k, theta, pcn, pdn, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_sn(U k, T theta)\ + { return boost::math::jacobi_sn(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_cn(T k, U theta)\ + { return boost::math::jacobi_cn(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_dn(T k, U theta)\ + { return boost::math::jacobi_dn(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_cd(T k, U theta)\ + { return boost::math::jacobi_cd(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_dc(T k, U theta)\ + { return boost::math::jacobi_dc(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_ns(T k, U theta)\ + { return boost::math::jacobi_ns(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_sd(T k, U theta)\ + { return boost::math::jacobi_sd(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_ds(T k, U theta)\ + { return boost::math::jacobi_ds(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_nc(T k, U theta)\ + { return boost::math::jacobi_nc(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_nd(T k, U theta)\ + { return boost::math::jacobi_nd(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_sc(T k, U theta)\ + { return boost::math::jacobi_sc(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_cs(T k, U theta)\ + { return boost::math::jacobi_cs(k, theta, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type airy_ai(T x)\ + { return boost::math::airy_ai(x, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type airy_bi(T x)\ + { return boost::math::airy_bi(x, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type airy_ai_prime(T x)\ + { return boost::math::airy_ai_prime(x, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type airy_bi_prime(T x)\ + { return boost::math::airy_bi_prime(x, Policy()); }\ + \ + + + #endif // BOOST_MATH_SPECIAL_MATH_FWD_HPP diff --git a/boost/boost/math/tools/config.hpp b/boost/boost/math/tools/config.hpp index 96f5d81a43..70213b290d 100644 --- a/boost/boost/math/tools/config.hpp +++ b/boost/boost/math/tools/config.hpp @@ -16,6 +16,7 @@ #include // for min and max #include #include +#include #if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) # include #endif @@ -24,7 +25,8 @@ #include #if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) \ - || (defined(__hppa) && !defined(__OpenBSD__)) || defined(__NO_LONG_DOUBLE_MATH)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) + || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \ + && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) # define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS #endif #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) @@ -38,6 +40,13 @@ # define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM) # include #endif +#ifdef __IBMCPP__ +// +// For reasons I don't unserstand, the tests with IMB's compiler all +// pass at long double precision, but fail with real_concept, those tests +// are disabled for now. (JM 2012). +# define BOOST_MATH_NO_REAL_CONCEPT_TESTS +#endif #if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) // // Darwin's rather strange "double double" is rather hard to @@ -90,9 +99,14 @@ # define BOOST_MATH_USE_C99 #endif +#if defined(_LIBCPP_VERSION) && !defined(_MSC_VER) +# define BOOST_MATH_USE_C99 +#endif + #if defined(__CYGWIN__) || defined(__HP_aCC) || defined(BOOST_INTEL) \ || defined(BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) \ - || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99)) + || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99))\ + || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) # define BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY #endif diff --git a/boost/boost/memory_order.hpp b/boost/boost/memory_order.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/O1_size.hpp b/boost/boost/mpl/O1_size.hpp index 84ba5215e0..8baaa79be3 100644 --- a/boost/boost/mpl/O1_size.hpp +++ b/boost/boost/mpl/O1_size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/O1_size_fwd.hpp b/boost/boost/mpl/O1_size_fwd.hpp old mode 100755 new mode 100644 index 281fcafa86..d97538277d --- a/boost/boost/mpl/O1_size_fwd.hpp +++ b/boost/boost/mpl/O1_size_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: O1_size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/advance.hpp b/boost/boost/mpl/advance.hpp old mode 100755 new mode 100644 index c8b5ae8cb3..d811a80918 --- a/boost/boost/mpl/advance.hpp +++ b/boost/boost/mpl/advance.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: advance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/advance_fwd.hpp b/boost/boost/mpl/advance_fwd.hpp old mode 100755 new mode 100644 index daf0c910a0..08ba5fc40c --- a/boost/boost/mpl/advance_fwd.hpp +++ b/boost/boost/mpl/advance_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: advance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/always.hpp b/boost/boost/mpl/always.hpp index f98423138c..5094b3ee93 100644 --- a/boost/boost/mpl/always.hpp +++ b/boost/boost/mpl/always.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: always.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/and.hpp b/boost/boost/mpl/and.hpp index 1b3ede2299..da257c8fc2 100644 --- a/boost/boost/mpl/and.hpp +++ b/boost/boost/mpl/and.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: and.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/apply.hpp b/boost/boost/mpl/apply.hpp index 944619e60c..b0455bc06e 100644 --- a/boost/boost/mpl/apply.hpp +++ b/boost/boost/mpl/apply.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/apply_fwd.hpp b/boost/boost/mpl/apply_fwd.hpp index a78ae8b45a..8cbdfaf97d 100644 --- a/boost/boost/mpl/apply_fwd.hpp +++ b/boost/boost/mpl/apply_fwd.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: apply_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/apply_wrap.hpp b/boost/boost/mpl/apply_wrap.hpp index b3cb12b426..5c5c6df601 100644 --- a/boost/boost/mpl/apply_wrap.hpp +++ b/boost/boost/mpl/apply_wrap.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: apply_wrap.hpp 49272 2008-10-11 06:50:46Z agurtovoy $ -// $Date: 2008-10-11 02:50:46 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49272 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/arg.hpp b/boost/boost/mpl/arg.hpp index c1c7072686..c323a1a6e7 100644 --- a/boost/boost/mpl/arg.hpp +++ b/boost/boost/mpl/arg.hpp @@ -16,7 +16,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/arg_fwd.hpp b/boost/boost/mpl/arg_fwd.hpp index c96b48f068..f79e0561cb 100644 --- a/boost/boost/mpl/arg_fwd.hpp +++ b/boost/boost/mpl/arg_fwd.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arg_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/assert.hpp b/boost/boost/mpl/assert.hpp index 33b82f3ffa..acc3954f0f 100644 --- a/boost/boost/mpl/assert.hpp +++ b/boost/boost/mpl/assert.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/at.hpp b/boost/boost/mpl/at.hpp old mode 100755 new mode 100644 index caa3462384..d247d71ad4 --- a/boost/boost/mpl/at.hpp +++ b/boost/boost/mpl/at.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/at_fwd.hpp b/boost/boost/mpl/at_fwd.hpp old mode 100755 new mode 100644 index 6bce275198..a4825f0d56 --- a/boost/boost/mpl/at_fwd.hpp +++ b/boost/boost/mpl/at_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: at_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/aux_/O1_size_impl.hpp b/boost/boost/mpl/aux_/O1_size_impl.hpp index df408f0899..614730dff9 100644 --- a/boost/boost/mpl/aux_/O1_size_impl.hpp +++ b/boost/boost/mpl/aux_/O1_size_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: O1_size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/adl_barrier.hpp b/boost/boost/mpl/aux_/adl_barrier.hpp index 7d9eaea58d..077f46fc0f 100644 --- a/boost/boost/mpl/aux_/adl_barrier.hpp +++ b/boost/boost/mpl/aux_/adl_barrier.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: adl_barrier.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/advance_backward.hpp b/boost/boost/mpl/aux_/advance_backward.hpp old mode 100755 new mode 100644 index 169202a3fb..d44c59f8ef --- a/boost/boost/mpl/aux_/advance_backward.hpp +++ b/boost/boost/mpl/aux_/advance_backward.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: advance_backward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/advance_forward.hpp b/boost/boost/mpl/aux_/advance_forward.hpp old mode 100755 new mode 100644 index 058f765d2f..4edd3ead79 --- a/boost/boost/mpl/aux_/advance_forward.hpp +++ b/boost/boost/mpl/aux_/advance_forward.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: advance_forward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/arg_typedef.hpp b/boost/boost/mpl/aux_/arg_typedef.hpp index e4737b9ac9..ed5e5bd723 100644 --- a/boost/boost/mpl/aux_/arg_typedef.hpp +++ b/boost/boost/mpl/aux_/arg_typedef.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arg_typedef.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/arithmetic_op.hpp b/boost/boost/mpl/aux_/arithmetic_op.hpp old mode 100755 new mode 100644 index 9546e8eb8d..0a310b7ced --- a/boost/boost/mpl/aux_/arithmetic_op.hpp +++ b/boost/boost/mpl/aux_/arithmetic_op.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arithmetic_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/arity.hpp b/boost/boost/mpl/aux_/arity.hpp index f639a1034f..adedcc6b5c 100644 --- a/boost/boost/mpl/aux_/arity.hpp +++ b/boost/boost/mpl/aux_/arity.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/arity_spec.hpp b/boost/boost/mpl/aux_/arity_spec.hpp index ea164a62e5..6ae5cc72bd 100644 --- a/boost/boost/mpl/aux_/arity_spec.hpp +++ b/boost/boost/mpl/aux_/arity_spec.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arity_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/at_impl.hpp b/boost/boost/mpl/aux_/at_impl.hpp old mode 100755 new mode 100644 index 120738f6ca..4af7cfed87 --- a/boost/boost/mpl/aux_/at_impl.hpp +++ b/boost/boost/mpl/aux_/at_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: at_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/begin_end_impl.hpp b/boost/boost/mpl/aux_/begin_end_impl.hpp old mode 100755 new mode 100644 index d3b9682ac1..1a220a24ad --- a/boost/boost/mpl/aux_/begin_end_impl.hpp +++ b/boost/boost/mpl/aux_/begin_end_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: begin_end_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/clear_impl.hpp b/boost/boost/mpl/aux_/clear_impl.hpp index 84da54b122..3850086ca5 100644 --- a/boost/boost/mpl/aux_/clear_impl.hpp +++ b/boost/boost/mpl/aux_/clear_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: clear_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/common_name_wknd.hpp b/boost/boost/mpl/aux_/common_name_wknd.hpp index 9d0b4b4001..a6c7898b22 100644 --- a/boost/boost/mpl/aux_/common_name_wknd.hpp +++ b/boost/boost/mpl/aux_/common_name_wknd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: common_name_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/comparison_op.hpp b/boost/boost/mpl/aux_/comparison_op.hpp old mode 100755 new mode 100644 index 7d0fa201ac..f0850a4d03 --- a/boost/boost/mpl/aux_/comparison_op.hpp +++ b/boost/boost/mpl/aux_/comparison_op.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: comparison_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/config/adl.hpp b/boost/boost/mpl/aux_/config/adl.hpp index 130ee9f49d..d6ead717ea 100644 --- a/boost/boost/mpl/aux_/config/adl.hpp +++ b/boost/boost/mpl/aux_/config/adl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: adl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/arrays.hpp b/boost/boost/mpl/aux_/config/arrays.hpp index 56ee0a3be8..d801cf7c3d 100644 --- a/boost/boost/mpl/aux_/config/arrays.hpp +++ b/boost/boost/mpl/aux_/config/arrays.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arrays.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/bind.hpp b/boost/boost/mpl/aux_/config/bind.hpp index d0450e6f3f..02a7814201 100644 --- a/boost/boost/mpl/aux_/config/bind.hpp +++ b/boost/boost/mpl/aux_/config/bind.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/compiler.hpp b/boost/boost/mpl/aux_/config/compiler.hpp index 3238963c0c..e80ccde7f0 100644 --- a/boost/boost/mpl/aux_/config/compiler.hpp +++ b/boost/boost/mpl/aux_/config/compiler.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: compiler.hpp 53189 2009-05-22 20:07:55Z hkaiser $ -// $Date: 2009-05-22 16:07:55 -0400 (Fri, 22 May 2009) $ +// $Date: 2009-05-22 13:07:55 -0700 (Fri, 22 May 2009) $ // $Revision: 53189 $ #if !defined(BOOST_MPL_CFG_COMPILER_DIR) diff --git a/boost/boost/mpl/aux_/config/ctps.hpp b/boost/boost/mpl/aux_/config/ctps.hpp index b908cee9ff..9a4aaf724e 100644 --- a/boost/boost/mpl/aux_/config/ctps.hpp +++ b/boost/boost/mpl/aux_/config/ctps.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp b/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp old mode 100755 new mode 100644 index 682770ee45..f5f53f7c5a --- a/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +++ b/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: dmc_ambiguous_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/dtp.hpp b/boost/boost/mpl/aux_/config/dtp.hpp index 8f03a83001..e53929bb84 100644 --- a/boost/boost/mpl/aux_/config/dtp.hpp +++ b/boost/boost/mpl/aux_/config/dtp.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: dtp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/eti.hpp b/boost/boost/mpl/aux_/config/eti.hpp index 7328b6d1ff..c3fd1c60c9 100644 --- a/boost/boost/mpl/aux_/config/eti.hpp +++ b/boost/boost/mpl/aux_/config/eti.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: eti.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/forwarding.hpp b/boost/boost/mpl/aux_/config/forwarding.hpp old mode 100755 new mode 100644 index 2390bd7431..0919d07268 --- a/boost/boost/mpl/aux_/config/forwarding.hpp +++ b/boost/boost/mpl/aux_/config/forwarding.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: forwarding.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/gcc.hpp b/boost/boost/mpl/aux_/config/gcc.hpp index 3380d613ce..b9d8f7d32f 100644 --- a/boost/boost/mpl/aux_/config/gcc.hpp +++ b/boost/boost/mpl/aux_/config/gcc.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: gcc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if defined(__GNUC__) && !defined(__EDG_VERSION__) diff --git a/boost/boost/mpl/aux_/config/has_apply.hpp b/boost/boost/mpl/aux_/config/has_apply.hpp index fc9176ffe7..cc52ebac50 100644 --- a/boost/boost/mpl/aux_/config/has_apply.hpp +++ b/boost/boost/mpl/aux_/config/has_apply.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/has_xxx.hpp b/boost/boost/mpl/aux_/config/has_xxx.hpp index e03fe11dfd..1139b684ca 100644 --- a/boost/boost/mpl/aux_/config/has_xxx.hpp +++ b/boost/boost/mpl/aux_/config/has_xxx.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_xxx.hpp 63518 2010-07-02 08:32:03Z agurtovoy $ -// $Date: 2010-07-02 04:32:03 -0400 (Fri, 02 Jul 2010) $ +// $Date: 2010-07-02 01:32:03 -0700 (Fri, 02 Jul 2010) $ // $Revision: 63518 $ #include diff --git a/boost/boost/mpl/aux_/config/integral.hpp b/boost/boost/mpl/aux_/config/integral.hpp index 4dec725b61..6a891604e3 100644 --- a/boost/boost/mpl/aux_/config/integral.hpp +++ b/boost/boost/mpl/aux_/config/integral.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: integral.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/intel.hpp b/boost/boost/mpl/aux_/config/intel.hpp index 8f1de7613b..141a95233e 100644 --- a/boost/boost/mpl/aux_/config/intel.hpp +++ b/boost/boost/mpl/aux_/config/intel.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: intel.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ diff --git a/boost/boost/mpl/aux_/config/lambda.hpp b/boost/boost/mpl/aux_/config/lambda.hpp index a46b46a7f4..7be16bf7c6 100644 --- a/boost/boost/mpl/aux_/config/lambda.hpp +++ b/boost/boost/mpl/aux_/config/lambda.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/msvc.hpp b/boost/boost/mpl/aux_/config/msvc.hpp index 18bed83464..fe89cda30b 100644 --- a/boost/boost/mpl/aux_/config/msvc.hpp +++ b/boost/boost/mpl/aux_/config/msvc.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ diff --git a/boost/boost/mpl/aux_/config/msvc_typename.hpp b/boost/boost/mpl/aux_/config/msvc_typename.hpp index 042c8040f8..603e2755ea 100644 --- a/boost/boost/mpl/aux_/config/msvc_typename.hpp +++ b/boost/boost/mpl/aux_/config/msvc_typename.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_typename.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/nttp.hpp b/boost/boost/mpl/aux_/config/nttp.hpp index 4873e20d9e..f8bd39efab 100644 --- a/boost/boost/mpl/aux_/config/nttp.hpp +++ b/boost/boost/mpl/aux_/config/nttp.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: nttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/overload_resolution.hpp b/boost/boost/mpl/aux_/config/overload_resolution.hpp index 88c3d53f2d..9de579ff5b 100644 --- a/boost/boost/mpl/aux_/config/overload_resolution.hpp +++ b/boost/boost/mpl/aux_/config/overload_resolution.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: overload_resolution.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/pp_counter.hpp b/boost/boost/mpl/aux_/config/pp_counter.hpp old mode 100755 new mode 100644 index a4d07157b3..4592272f8b --- a/boost/boost/mpl/aux_/config/pp_counter.hpp +++ b/boost/boost/mpl/aux_/config/pp_counter.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pp_counter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_AUX_PP_COUNTER) diff --git a/boost/boost/mpl/aux_/config/preprocessor.hpp b/boost/boost/mpl/aux_/config/preprocessor.hpp index 52229cd863..39190c4fdd 100644 --- a/boost/boost/mpl/aux_/config/preprocessor.hpp +++ b/boost/boost/mpl/aux_/config/preprocessor.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: preprocessor.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/static_constant.hpp b/boost/boost/mpl/aux_/config/static_constant.hpp index 855d22f3ab..02cf9c4ed4 100644 --- a/boost/boost/mpl/aux_/config/static_constant.hpp +++ b/boost/boost/mpl/aux_/config/static_constant.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: static_constant.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/config/ttp.hpp b/boost/boost/mpl/aux_/config/ttp.hpp index a5a0c2cbdf..879ec1ddca 100644 --- a/boost/boost/mpl/aux_/config/ttp.hpp +++ b/boost/boost/mpl/aux_/config/ttp.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: ttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/typeof.hpp b/boost/boost/mpl/aux_/config/typeof.hpp old mode 100755 new mode 100644 index aeff9c1093..2244d2cd14 --- a/boost/boost/mpl/aux_/config/typeof.hpp +++ b/boost/boost/mpl/aux_/config/typeof.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: typeof.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/config/use_preprocessed.hpp b/boost/boost/mpl/aux_/config/use_preprocessed.hpp index 3bbc2296d8..4494366d8d 100644 --- a/boost/boost/mpl/aux_/config/use_preprocessed.hpp +++ b/boost/boost/mpl/aux_/config/use_preprocessed.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: use_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ // #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS diff --git a/boost/boost/mpl/aux_/config/workaround.hpp b/boost/boost/mpl/aux_/config/workaround.hpp index 337bcf7c6b..8ec172f672 100644 --- a/boost/boost/mpl/aux_/config/workaround.hpp +++ b/boost/boost/mpl/aux_/config/workaround.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: workaround.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/contains_impl.hpp b/boost/boost/mpl/aux_/contains_impl.hpp index 2ee405694b..2dcb609c95 100644 --- a/boost/boost/mpl/aux_/contains_impl.hpp +++ b/boost/boost/mpl/aux_/contains_impl.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: contains_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/count_args.hpp b/boost/boost/mpl/aux_/count_args.hpp old mode 100755 new mode 100644 index 85107ddbd2..1ab000db14 --- a/boost/boost/mpl/aux_/count_args.hpp +++ b/boost/boost/mpl/aux_/count_args.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: count_args.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/empty_impl.hpp b/boost/boost/mpl/aux_/empty_impl.hpp index 9a553a77fe..0b4b979873 100644 --- a/boost/boost/mpl/aux_/empty_impl.hpp +++ b/boost/boost/mpl/aux_/empty_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: empty_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/fold_impl.hpp b/boost/boost/mpl/aux_/fold_impl.hpp index 89e42f8b55..cc640224da 100644 --- a/boost/boost/mpl/aux_/fold_impl.hpp +++ b/boost/boost/mpl/aux_/fold_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/fold_impl_body.hpp b/boost/boost/mpl/aux_/fold_impl_body.hpp index 41f80b4b0d..0750990ae3 100644 --- a/boost/boost/mpl/aux_/fold_impl_body.hpp +++ b/boost/boost/mpl/aux_/fold_impl_body.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ # include diff --git a/boost/boost/mpl/aux_/full_lambda.hpp b/boost/boost/mpl/aux_/full_lambda.hpp index dfaaedbe6e..e931199915 100644 --- a/boost/boost/mpl/aux_/full_lambda.hpp +++ b/boost/boost/mpl/aux_/full_lambda.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: full_lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/has_apply.hpp b/boost/boost/mpl/aux_/has_apply.hpp index b77b56170f..cfb496e3bb 100644 --- a/boost/boost/mpl/aux_/has_apply.hpp +++ b/boost/boost/mpl/aux_/has_apply.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/has_begin.hpp b/boost/boost/mpl/aux_/has_begin.hpp old mode 100755 new mode 100644 index e7403d2412..c2b3bdbb5b --- a/boost/boost/mpl/aux_/has_begin.hpp +++ b/boost/boost/mpl/aux_/has_begin.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/has_rebind.hpp b/boost/boost/mpl/aux_/has_rebind.hpp old mode 100755 new mode 100644 index 32cdb83570..f07e79e567 --- a/boost/boost/mpl/aux_/has_rebind.hpp +++ b/boost/boost/mpl/aux_/has_rebind.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_rebind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/has_size.hpp b/boost/boost/mpl/aux_/has_size.hpp index 3f72c44db6..23588af0be 100644 --- a/boost/boost/mpl/aux_/has_size.hpp +++ b/boost/boost/mpl/aux_/has_size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/has_tag.hpp b/boost/boost/mpl/aux_/has_tag.hpp old mode 100755 new mode 100644 index c016ec5200..915a8b6221 --- a/boost/boost/mpl/aux_/has_tag.hpp +++ b/boost/boost/mpl/aux_/has_tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/has_type.hpp b/boost/boost/mpl/aux_/has_type.hpp index 1d301a2f5d..4f05072b5f 100644 --- a/boost/boost/mpl/aux_/has_type.hpp +++ b/boost/boost/mpl/aux_/has_type.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/include_preprocessed.hpp b/boost/boost/mpl/aux_/include_preprocessed.hpp index b214eebc25..162b05cc0d 100644 --- a/boost/boost/mpl/aux_/include_preprocessed.hpp +++ b/boost/boost/mpl/aux_/include_preprocessed.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/insert_range_impl.hpp b/boost/boost/mpl/aux_/insert_range_impl.hpp index c1a2f5434c..d7357b46a0 100644 --- a/boost/boost/mpl/aux_/insert_range_impl.hpp +++ b/boost/boost/mpl/aux_/insert_range_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: insert_range_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/inserter_algorithm.hpp b/boost/boost/mpl/aux_/inserter_algorithm.hpp index a6f340c782..2d7e1d928a 100644 --- a/boost/boost/mpl/aux_/inserter_algorithm.hpp +++ b/boost/boost/mpl/aux_/inserter_algorithm.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: inserter_algorithm.hpp 55648 2009-08-18 05:16:53Z agurtovoy $ -// $Date: 2009-08-18 01:16:53 -0400 (Tue, 18 Aug 2009) $ +// $Date: 2009-08-17 22:16:53 -0700 (Mon, 17 Aug 2009) $ // $Revision: 55648 $ #include diff --git a/boost/boost/mpl/aux_/integral_wrapper.hpp b/boost/boost/mpl/aux_/integral_wrapper.hpp index 963a738abb..d36e7cbb2d 100644 --- a/boost/boost/mpl/aux_/integral_wrapper.hpp +++ b/boost/boost/mpl/aux_/integral_wrapper.hpp @@ -8,7 +8,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: integral_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! diff --git a/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp b/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp index 322a22e0e1..917b57cbc3 100644 --- a/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp +++ b/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: is_msvc_eti_arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/iter_apply.hpp b/boost/boost/mpl/aux_/iter_apply.hpp index fc21f7355f..fee4d811c1 100644 --- a/boost/boost/mpl/aux_/iter_apply.hpp +++ b/boost/boost/mpl/aux_/iter_apply.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/iter_fold_if_impl.hpp index e7c47eac1e..ad80250d0b 100644 --- a/boost/boost/mpl/aux_/iter_fold_if_impl.hpp +++ b/boost/boost/mpl/aux_/iter_fold_if_impl.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_fold_if_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/iter_fold_impl.hpp b/boost/boost/mpl/aux_/iter_fold_impl.hpp index 0ea86c3c0e..7bc572078d 100644 --- a/boost/boost/mpl/aux_/iter_fold_impl.hpp +++ b/boost/boost/mpl/aux_/iter_fold_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/iter_push_front.hpp b/boost/boost/mpl/aux_/iter_push_front.hpp index 2fa4f94ea8..3a01b0360c 100644 --- a/boost/boost/mpl/aux_/iter_push_front.hpp +++ b/boost/boost/mpl/aux_/iter_push_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/joint_iter.hpp b/boost/boost/mpl/aux_/joint_iter.hpp index e2589dc19a..e78028d644 100644 --- a/boost/boost/mpl/aux_/joint_iter.hpp +++ b/boost/boost/mpl/aux_/joint_iter.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: joint_iter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/lambda_arity_param.hpp b/boost/boost/mpl/aux_/lambda_arity_param.hpp index 720918eabb..5418f2c904 100644 --- a/boost/boost/mpl/aux_/lambda_arity_param.hpp +++ b/boost/boost/mpl/aux_/lambda_arity_param.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda_arity_param.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/lambda_no_ctps.hpp old mode 100755 new mode 100644 index cd55fc7bef..1c383b4279 --- a/boost/boost/mpl/aux_/lambda_no_ctps.hpp +++ b/boost/boost/mpl/aux_/lambda_no_ctps.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda_no_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/lambda_spec.hpp b/boost/boost/mpl/aux_/lambda_spec.hpp index f167479945..52b1dcd55c 100644 --- a/boost/boost/mpl/aux_/lambda_spec.hpp +++ b/boost/boost/mpl/aux_/lambda_spec.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/lambda_support.hpp b/boost/boost/mpl/aux_/lambda_support.hpp index fa000d8999..2d25348ff6 100644 --- a/boost/boost/mpl/aux_/lambda_support.hpp +++ b/boost/boost/mpl/aux_/lambda_support.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda_support.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/largest_int.hpp b/boost/boost/mpl/aux_/largest_int.hpp old mode 100755 new mode 100644 index 89e987a5a7..1b9f1cf985 --- a/boost/boost/mpl/aux_/largest_int.hpp +++ b/boost/boost/mpl/aux_/largest_int.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: largest_int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/logical_op.hpp b/boost/boost/mpl/aux_/logical_op.hpp old mode 100755 new mode 100644 index e4689c9d9e..d964049343 --- a/boost/boost/mpl/aux_/logical_op.hpp +++ b/boost/boost/mpl/aux_/logical_op.hpp @@ -8,7 +8,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: logical_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! diff --git a/boost/boost/mpl/aux_/msvc_dtw.hpp b/boost/boost/mpl/aux_/msvc_dtw.hpp old mode 100755 new mode 100644 index 222c47708a..b8953f59db --- a/boost/boost/mpl/aux_/msvc_dtw.hpp +++ b/boost/boost/mpl/aux_/msvc_dtw.hpp @@ -8,7 +8,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_dtw.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! diff --git a/boost/boost/mpl/aux_/msvc_eti_base.hpp b/boost/boost/mpl/aux_/msvc_eti_base.hpp index 2c1ada5b37..61bd38ab5b 100644 --- a/boost/boost/mpl/aux_/msvc_eti_base.hpp +++ b/boost/boost/mpl/aux_/msvc_eti_base.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_eti_base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/msvc_is_class.hpp b/boost/boost/mpl/aux_/msvc_is_class.hpp old mode 100755 new mode 100644 index e0ccb38876..54a2c5766c --- a/boost/boost/mpl/aux_/msvc_is_class.hpp +++ b/boost/boost/mpl/aux_/msvc_is_class.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_is_class.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/msvc_never_true.hpp b/boost/boost/mpl/aux_/msvc_never_true.hpp index 93da72e2a3..ca35adca9c 100644 --- a/boost/boost/mpl/aux_/msvc_never_true.hpp +++ b/boost/boost/mpl/aux_/msvc_never_true.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_never_true.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/msvc_type.hpp b/boost/boost/mpl/aux_/msvc_type.hpp old mode 100755 new mode 100644 index ab662dbc2c..643fd83e99 --- a/boost/boost/mpl/aux_/msvc_type.hpp +++ b/boost/boost/mpl/aux_/msvc_type.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: msvc_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/na.hpp b/boost/boost/mpl/aux_/na.hpp index 314250c643..b75fcdd28d 100644 --- a/boost/boost/mpl/aux_/na.hpp +++ b/boost/boost/mpl/aux_/na.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: na.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/na_assert.hpp b/boost/boost/mpl/aux_/na_assert.hpp index ece7f4cb1c..df88ba3e56 100644 --- a/boost/boost/mpl/aux_/na_assert.hpp +++ b/boost/boost/mpl/aux_/na_assert.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: na_assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/na_fwd.hpp b/boost/boost/mpl/aux_/na_fwd.hpp index dd64fc19f2..2409fc8a13 100644 --- a/boost/boost/mpl/aux_/na_fwd.hpp +++ b/boost/boost/mpl/aux_/na_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: na_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/na_spec.hpp b/boost/boost/mpl/aux_/na_spec.hpp index 92b2e5a00a..6cd7721ca8 100644 --- a/boost/boost/mpl/aux_/na_spec.hpp +++ b/boost/boost/mpl/aux_/na_spec.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: na_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/nested_type_wknd.hpp b/boost/boost/mpl/aux_/nested_type_wknd.hpp index cee38314be..cc4628672a 100644 --- a/boost/boost/mpl/aux_/nested_type_wknd.hpp +++ b/boost/boost/mpl/aux_/nested_type_wknd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: nested_type_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/nttp_decl.hpp b/boost/boost/mpl/aux_/nttp_decl.hpp index 0fa254df0c..65e2929130 100644 --- a/boost/boost/mpl/aux_/nttp_decl.hpp +++ b/boost/boost/mpl/aux_/nttp_decl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: nttp_decl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/numeric_cast_utils.hpp b/boost/boost/mpl/aux_/numeric_cast_utils.hpp old mode 100755 new mode 100644 index cc5ea91eae..11f04edd7b --- a/boost/boost/mpl/aux_/numeric_cast_utils.hpp +++ b/boost/boost/mpl/aux_/numeric_cast_utils.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numeric_cast_utils.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/numeric_op.hpp b/boost/boost/mpl/aux_/numeric_op.hpp old mode 100755 new mode 100644 index 2b0d6eb267..896935cc44 --- a/boost/boost/mpl/aux_/numeric_op.hpp +++ b/boost/boost/mpl/aux_/numeric_op.hpp @@ -14,7 +14,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numeric_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/and.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/less.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/list.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/map.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/or.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/set.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/times.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/and.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/less.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/list.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/map.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/or.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/set.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/times.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/less.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/list.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/map.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/set.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/times.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/aux_/preprocessor/add.hpp b/boost/boost/mpl/aux_/preprocessor/add.hpp old mode 100755 new mode 100644 index 9cf4a9a82e..26a70e7563 --- a/boost/boost/mpl/aux_/preprocessor/add.hpp +++ b/boost/boost/mpl/aux_/preprocessor/add.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: add.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp index 7b0b0afb35..c51636e68f 100644 --- a/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp +++ b/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: def_params_tail.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/default_params.hpp b/boost/boost/mpl/aux_/preprocessor/default_params.hpp index 63cf92e3dd..66d6d0397a 100644 --- a/boost/boost/mpl/aux_/preprocessor/default_params.hpp +++ b/boost/boost/mpl/aux_/preprocessor/default_params.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: default_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/enum.hpp b/boost/boost/mpl/aux_/preprocessor/enum.hpp index a7f95e34be..11541a050c 100644 --- a/boost/boost/mpl/aux_/preprocessor/enum.hpp +++ b/boost/boost/mpl/aux_/preprocessor/enum.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: enum.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/ext_params.hpp b/boost/boost/mpl/aux_/preprocessor/ext_params.hpp old mode 100755 new mode 100644 index 6bbb1113e1..a89535d6b2 --- a/boost/boost/mpl/aux_/preprocessor/ext_params.hpp +++ b/boost/boost/mpl/aux_/preprocessor/ext_params.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: ext_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/filter_params.hpp b/boost/boost/mpl/aux_/preprocessor/filter_params.hpp index 38f3cbfd71..fefd984778 100644 --- a/boost/boost/mpl/aux_/preprocessor/filter_params.hpp +++ b/boost/boost/mpl/aux_/preprocessor/filter_params.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: filter_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) diff --git a/boost/boost/mpl/aux_/preprocessor/params.hpp b/boost/boost/mpl/aux_/preprocessor/params.hpp index 410a8d0d0a..ac861ecc40 100644 --- a/boost/boost/mpl/aux_/preprocessor/params.hpp +++ b/boost/boost/mpl/aux_/preprocessor/params.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp b/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp old mode 100755 new mode 100644 index 346d9cdc09..e2e1fa900d --- a/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +++ b/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: partial_spec_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/range.hpp b/boost/boost/mpl/aux_/preprocessor/range.hpp old mode 100755 new mode 100644 index cd4c5113c9..e69a9e1945 --- a/boost/boost/mpl/aux_/preprocessor/range.hpp +++ b/boost/boost/mpl/aux_/preprocessor/range.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/repeat.hpp b/boost/boost/mpl/aux_/preprocessor/repeat.hpp old mode 100755 new mode 100644 index cfebe043b5..2c314eca17 --- a/boost/boost/mpl/aux_/preprocessor/repeat.hpp +++ b/boost/boost/mpl/aux_/preprocessor/repeat.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: repeat.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/sub.hpp b/boost/boost/mpl/aux_/preprocessor/sub.hpp index 8ba8132e9c..7f5e2913a8 100644 --- a/boost/boost/mpl/aux_/preprocessor/sub.hpp +++ b/boost/boost/mpl/aux_/preprocessor/sub.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: sub.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/preprocessor/tuple.hpp b/boost/boost/mpl/aux_/preprocessor/tuple.hpp index f46d0e9651..ed59407c5e 100644 --- a/boost/boost/mpl/aux_/preprocessor/tuple.hpp +++ b/boost/boost/mpl/aux_/preprocessor/tuple.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: tuple.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0 diff --git a/boost/boost/mpl/aux_/push_back_impl.hpp b/boost/boost/mpl/aux_/push_back_impl.hpp index 2f839cb88a..732c43c802 100644 --- a/boost/boost/mpl/aux_/push_back_impl.hpp +++ b/boost/boost/mpl/aux_/push_back_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_back_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $ -// $Date: 2009-08-20 03:50:16 -0400 (Thu, 20 Aug 2009) $ +// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $ // $Revision: 55679 $ #include diff --git a/boost/boost/mpl/aux_/push_front_impl.hpp b/boost/boost/mpl/aux_/push_front_impl.hpp index 6723ea3894..ae1bc22d33 100644 --- a/boost/boost/mpl/aux_/push_front_impl.hpp +++ b/boost/boost/mpl/aux_/push_front_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_front_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $ -// $Date: 2009-08-20 03:50:16 -0400 (Thu, 20 Aug 2009) $ +// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $ // $Revision: 55679 $ #include diff --git a/boost/boost/mpl/aux_/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/reverse_fold_impl.hpp index b8e2308e84..9c17c01295 100644 --- a/boost/boost/mpl/aux_/reverse_fold_impl.hpp +++ b/boost/boost/mpl/aux_/reverse_fold_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: reverse_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp b/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp index 7bd561874b..c815e0aed9 100644 --- a/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp +++ b/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: reverse_fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ # include diff --git a/boost/boost/mpl/aux_/sequence_wrapper.hpp b/boost/boost/mpl/aux_/sequence_wrapper.hpp old mode 100755 new mode 100644 index 3f9f8cad25..8b49c74ed0 --- a/boost/boost/mpl/aux_/sequence_wrapper.hpp +++ b/boost/boost/mpl/aux_/sequence_wrapper.hpp @@ -14,7 +14,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: sequence_wrapper.hpp 49271 2008-10-11 06:46:00Z agurtovoy $ -// $Date: 2008-10-11 02:46:00 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:46:00 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49271 $ # include diff --git a/boost/boost/mpl/aux_/size_impl.hpp b/boost/boost/mpl/aux_/size_impl.hpp index 0e4885d7fc..73dc50d19b 100644 --- a/boost/boost/mpl/aux_/size_impl.hpp +++ b/boost/boost/mpl/aux_/size_impl.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/static_cast.hpp b/boost/boost/mpl/aux_/static_cast.hpp index 133730d3ba..8c12128e30 100644 --- a/boost/boost/mpl/aux_/static_cast.hpp +++ b/boost/boost/mpl/aux_/static_cast.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: static_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/template_arity.hpp b/boost/boost/mpl/aux_/template_arity.hpp index ed26ea24bb..5e3f6e012a 100644 --- a/boost/boost/mpl/aux_/template_arity.hpp +++ b/boost/boost/mpl/aux_/template_arity.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: template_arity.hpp 61584 2010-04-26 18:48:26Z agurtovoy $ -// $Date: 2010-04-26 14:48:26 -0400 (Mon, 26 Apr 2010) $ +// $Date: 2010-04-26 11:48:26 -0700 (Mon, 26 Apr 2010) $ // $Revision: 61584 $ #include diff --git a/boost/boost/mpl/aux_/template_arity_fwd.hpp b/boost/boost/mpl/aux_/template_arity_fwd.hpp index 4b7c8b819e..44bc9d2146 100644 --- a/boost/boost/mpl/aux_/template_arity_fwd.hpp +++ b/boost/boost/mpl/aux_/template_arity_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: template_arity_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { namespace aux { diff --git a/boost/boost/mpl/aux_/traits_lambda_spec.hpp b/boost/boost/mpl/aux_/traits_lambda_spec.hpp old mode 100755 new mode 100644 index f312f6d39d..c9b60fe78f --- a/boost/boost/mpl/aux_/traits_lambda_spec.hpp +++ b/boost/boost/mpl/aux_/traits_lambda_spec.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: traits_lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/type_wrapper.hpp b/boost/boost/mpl/aux_/type_wrapper.hpp index 0583f72c03..6d6091bd35 100644 --- a/boost/boost/mpl/aux_/type_wrapper.hpp +++ b/boost/boost/mpl/aux_/type_wrapper.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: type_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/value_wknd.hpp b/boost/boost/mpl/aux_/value_wknd.hpp index 9de1103b1c..7baa8bf7eb 100644 --- a/boost/boost/mpl/aux_/value_wknd.hpp +++ b/boost/boost/mpl/aux_/value_wknd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: value_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/aux_/yes_no.hpp b/boost/boost/mpl/aux_/yes_no.hpp index c3f567d88a..ebcb00dbbd 100644 --- a/boost/boost/mpl/aux_/yes_no.hpp +++ b/boost/boost/mpl/aux_/yes_no.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: yes_no.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/back_fwd.hpp b/boost/boost/mpl/back_fwd.hpp old mode 100755 new mode 100644 index cc01e33c64..c8b1fe9db4 --- a/boost/boost/mpl/back_fwd.hpp +++ b/boost/boost/mpl/back_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/back_inserter.hpp b/boost/boost/mpl/back_inserter.hpp index fa4ede802d..ce2a2849a4 100644 --- a/boost/boost/mpl/back_inserter.hpp +++ b/boost/boost/mpl/back_inserter.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: back_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/begin_end.hpp b/boost/boost/mpl/begin_end.hpp old mode 100755 new mode 100644 index 7d8d9eb25a..6c3accc77c --- a/boost/boost/mpl/begin_end.hpp +++ b/boost/boost/mpl/begin_end.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/begin_end_fwd.hpp b/boost/boost/mpl/begin_end_fwd.hpp old mode 100755 new mode 100644 index 1ac62c6d0a..d1edaca7c8 --- a/boost/boost/mpl/begin_end_fwd.hpp +++ b/boost/boost/mpl/begin_end_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: begin_end_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/bind.hpp b/boost/boost/mpl/bind.hpp index 5d851ef5ad..25e46b4ff8 100644 --- a/boost/boost/mpl/bind.hpp +++ b/boost/boost/mpl/bind.hpp @@ -16,7 +16,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/bind_fwd.hpp b/boost/boost/mpl/bind_fwd.hpp index 18ac881221..35795ac00e 100644 --- a/boost/boost/mpl/bind_fwd.hpp +++ b/boost/boost/mpl/bind_fwd.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: bind_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/bool.hpp b/boost/boost/mpl/bool.hpp index a815ac5f4d..cabf22f2ce 100644 --- a/boost/boost/mpl/bool.hpp +++ b/boost/boost/mpl/bool.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: bool.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/bool_fwd.hpp b/boost/boost/mpl/bool_fwd.hpp index 080d876218..e71ab9cc78 100644 --- a/boost/boost/mpl/bool_fwd.hpp +++ b/boost/boost/mpl/bool_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: bool_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/clear.hpp b/boost/boost/mpl/clear.hpp index c27f4b36ee..9cf16fab46 100644 --- a/boost/boost/mpl/clear.hpp +++ b/boost/boost/mpl/clear.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/clear_fwd.hpp b/boost/boost/mpl/clear_fwd.hpp old mode 100755 new mode 100644 index da5a6eb4c7..e660bc26e9 --- a/boost/boost/mpl/clear_fwd.hpp +++ b/boost/boost/mpl/clear_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: clear_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/comparison.hpp b/boost/boost/mpl/comparison.hpp index 005d280b46..223b9efe17 100644 --- a/boost/boost/mpl/comparison.hpp +++ b/boost/boost/mpl/comparison.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: comparison.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/contains.hpp b/boost/boost/mpl/contains.hpp index 68e50bb8ea..620fe41e73 100644 --- a/boost/boost/mpl/contains.hpp +++ b/boost/boost/mpl/contains.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: contains.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/contains_fwd.hpp b/boost/boost/mpl/contains_fwd.hpp index 57ae63f28f..af7721a594 100644 --- a/boost/boost/mpl/contains_fwd.hpp +++ b/boost/boost/mpl/contains_fwd.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: contains_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/copy.hpp b/boost/boost/mpl/copy.hpp index 77376d064a..6849ec87ab 100644 --- a/boost/boost/mpl/copy.hpp +++ b/boost/boost/mpl/copy.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: copy.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/deref.hpp b/boost/boost/mpl/deref.hpp old mode 100755 new mode 100644 index fedf79e46f..15479e17c5 --- a/boost/boost/mpl/deref.hpp +++ b/boost/boost/mpl/deref.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: deref.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/distance.hpp b/boost/boost/mpl/distance.hpp index 9a180ab8d5..8ecd3c1b26 100644 --- a/boost/boost/mpl/distance.hpp +++ b/boost/boost/mpl/distance.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: distance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/distance_fwd.hpp b/boost/boost/mpl/distance_fwd.hpp old mode 100755 new mode 100644 index ddd8698011..766ceb4290 --- a/boost/boost/mpl/distance_fwd.hpp +++ b/boost/boost/mpl/distance_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: distance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/empty.hpp b/boost/boost/mpl/empty.hpp index adb3c76c44..e25c04c3ba 100644 --- a/boost/boost/mpl/empty.hpp +++ b/boost/boost/mpl/empty.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/empty_fwd.hpp b/boost/boost/mpl/empty_fwd.hpp old mode 100755 new mode 100644 index 28b226352e..4bf68681e5 --- a/boost/boost/mpl/empty_fwd.hpp +++ b/boost/boost/mpl/empty_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: empty_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/equal_to.hpp b/boost/boost/mpl/equal_to.hpp old mode 100755 new mode 100644 index dee5f59efe..359031c5c5 --- a/boost/boost/mpl/equal_to.hpp +++ b/boost/boost/mpl/equal_to.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME equal_to diff --git a/boost/boost/mpl/eval_if.hpp b/boost/boost/mpl/eval_if.hpp index d483c724d3..f1a5b7002f 100644 --- a/boost/boost/mpl/eval_if.hpp +++ b/boost/boost/mpl/eval_if.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: eval_if.hpp 61921 2010-05-11 21:33:24Z neilgroves $ -// $Date: 2010-05-11 17:33:24 -0400 (Tue, 11 May 2010) $ +// $Date: 2010-05-11 14:33:24 -0700 (Tue, 11 May 2010) $ // $Revision: 61921 $ #include diff --git a/boost/boost/mpl/find.hpp b/boost/boost/mpl/find.hpp index 6d71a88f0a..7b094239b8 100644 --- a/boost/boost/mpl/find.hpp +++ b/boost/boost/mpl/find.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: find.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/find_if.hpp b/boost/boost/mpl/find_if.hpp index b1d41b789d..a066e7120b 100644 --- a/boost/boost/mpl/find_if.hpp +++ b/boost/boost/mpl/find_if.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: find_if.hpp 49274 2008-10-11 07:22:05Z agurtovoy $ -// $Date: 2008-10-11 03:22:05 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-11 00:22:05 -0700 (Sat, 11 Oct 2008) $ // $Revision: 49274 $ #include diff --git a/boost/boost/mpl/fold.hpp b/boost/boost/mpl/fold.hpp index 9645681f8e..e5e02bd712 100644 --- a/boost/boost/mpl/fold.hpp +++ b/boost/boost/mpl/fold.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/front_fwd.hpp b/boost/boost/mpl/front_fwd.hpp old mode 100755 new mode 100644 index 65ffcf2e4a..62750010eb --- a/boost/boost/mpl/front_fwd.hpp +++ b/boost/boost/mpl/front_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/front_inserter.hpp b/boost/boost/mpl/front_inserter.hpp index ee754cf433..7220f768bb 100644 --- a/boost/boost/mpl/front_inserter.hpp +++ b/boost/boost/mpl/front_inserter.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: front_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/greater.hpp b/boost/boost/mpl/greater.hpp index e33ae487d5..c73276b2b3 100644 --- a/boost/boost/mpl/greater.hpp +++ b/boost/boost/mpl/greater.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: greater.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME greater diff --git a/boost/boost/mpl/greater_equal.hpp b/boost/boost/mpl/greater_equal.hpp index 91ccf83ece..119710f87c 100644 --- a/boost/boost/mpl/greater_equal.hpp +++ b/boost/boost/mpl/greater_equal.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: greater_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME greater_equal diff --git a/boost/boost/mpl/has_xxx.hpp b/boost/boost/mpl/has_xxx.hpp index 925875952a..121bc4853f 100644 --- a/boost/boost/mpl/has_xxx.hpp +++ b/boost/boost/mpl/has_xxx.hpp @@ -13,7 +13,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: has_xxx.hpp 64146 2010-07-19 00:46:31Z djwalker $ -// $Date: 2010-07-18 20:46:31 -0400 (Sun, 18 Jul 2010) $ +// $Date: 2010-07-18 17:46:31 -0700 (Sun, 18 Jul 2010) $ // $Revision: 64146 $ #include diff --git a/boost/boost/mpl/identity.hpp b/boost/boost/mpl/identity.hpp index d72540bbf4..5424f7103b 100644 --- a/boost/boost/mpl/identity.hpp +++ b/boost/boost/mpl/identity.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: identity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/if.hpp b/boost/boost/mpl/if.hpp index aa14d88017..245c993d98 100644 --- a/boost/boost/mpl/if.hpp +++ b/boost/boost/mpl/if.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/insert_range.hpp b/boost/boost/mpl/insert_range.hpp index 9332b9e9fd..30baf1d910 100644 --- a/boost/boost/mpl/insert_range.hpp +++ b/boost/boost/mpl/insert_range.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: insert_range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/insert_range_fwd.hpp b/boost/boost/mpl/insert_range_fwd.hpp index 256d2a2f80..de85c0e646 100644 --- a/boost/boost/mpl/insert_range_fwd.hpp +++ b/boost/boost/mpl/insert_range_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: insert_range_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/inserter.hpp b/boost/boost/mpl/inserter.hpp index 8e2c676f73..0c014d17b8 100644 --- a/boost/boost/mpl/inserter.hpp +++ b/boost/boost/mpl/inserter.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/int.hpp b/boost/boost/mpl/int.hpp index 971ca90002..14db5482ec 100644 --- a/boost/boost/mpl/int.hpp +++ b/boost/boost/mpl/int.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/int_fwd.hpp b/boost/boost/mpl/int_fwd.hpp index 0a0140ff49..87b043c104 100644 --- a/boost/boost/mpl/int_fwd.hpp +++ b/boost/boost/mpl/int_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: int_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/integral_c.hpp b/boost/boost/mpl/integral_c.hpp index 6c4d2bcdda..e270dc500a 100644 --- a/boost/boost/mpl/integral_c.hpp +++ b/boost/boost/mpl/integral_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: integral_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/integral_c_fwd.hpp b/boost/boost/mpl/integral_c_fwd.hpp index 46da935c2c..7fcbfd59d8 100644 --- a/boost/boost/mpl/integral_c_fwd.hpp +++ b/boost/boost/mpl/integral_c_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: integral_c_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/integral_c_tag.hpp b/boost/boost/mpl/integral_c_tag.hpp index 2b43e79247..27da563c7d 100644 --- a/boost/boost/mpl/integral_c_tag.hpp +++ b/boost/boost/mpl/integral_c_tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: integral_c_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ diff --git a/boost/boost/mpl/is_placeholder.hpp b/boost/boost/mpl/is_placeholder.hpp old mode 100755 new mode 100644 index 5b28b472f5..565df89cb2 --- a/boost/boost/mpl/is_placeholder.hpp +++ b/boost/boost/mpl/is_placeholder.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: is_placeholder.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/iter_fold.hpp b/boost/boost/mpl/iter_fold.hpp index cb24707619..1b52dd43c2 100644 --- a/boost/boost/mpl/iter_fold.hpp +++ b/boost/boost/mpl/iter_fold.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/iter_fold_if.hpp b/boost/boost/mpl/iter_fold_if.hpp index da80564adc..01847ef541 100644 --- a/boost/boost/mpl/iter_fold_if.hpp +++ b/boost/boost/mpl/iter_fold_if.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iter_fold_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/iterator_range.hpp b/boost/boost/mpl/iterator_range.hpp index d3fd43b537..995ddc0334 100644 --- a/boost/boost/mpl/iterator_range.hpp +++ b/boost/boost/mpl/iterator_range.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iterator_range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/iterator_tags.hpp b/boost/boost/mpl/iterator_tags.hpp old mode 100755 new mode 100644 index 46431a3231..fce273446b --- a/boost/boost/mpl/iterator_tags.hpp +++ b/boost/boost/mpl/iterator_tags.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iterator_tags.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/joint_view.hpp b/boost/boost/mpl/joint_view.hpp index dd8d91f646..2672fad348 100644 --- a/boost/boost/mpl/joint_view.hpp +++ b/boost/boost/mpl/joint_view.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: joint_view.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/lambda.hpp b/boost/boost/mpl/lambda.hpp index 165135f5e7..05c27167e8 100644 --- a/boost/boost/mpl/lambda.hpp +++ b/boost/boost/mpl/lambda.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/lambda_fwd.hpp b/boost/boost/mpl/lambda_fwd.hpp index f02837bd7f..16c73e4ad8 100644 --- a/boost/boost/mpl/lambda_fwd.hpp +++ b/boost/boost/mpl/lambda_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: lambda_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/less.hpp b/boost/boost/mpl/less.hpp old mode 100755 new mode 100644 index 11d860d1c5..33a570c2c8 --- a/boost/boost/mpl/less.hpp +++ b/boost/boost/mpl/less.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: less.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME less diff --git a/boost/boost/mpl/less_equal.hpp b/boost/boost/mpl/less_equal.hpp index 2284d1d0c2..8b9a4ffe89 100644 --- a/boost/boost/mpl/less_equal.hpp +++ b/boost/boost/mpl/less_equal.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: less_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME less_equal diff --git a/boost/boost/mpl/limits/arity.hpp b/boost/boost/mpl/limits/arity.hpp index 91e4606392..9da70ab34d 100644 --- a/boost/boost/mpl/limits/arity.hpp +++ b/boost/boost/mpl/limits/arity.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) diff --git a/boost/boost/mpl/limits/list.hpp b/boost/boost/mpl/limits/list.hpp index ee9c7aa187..6ae7387dca 100644 --- a/boost/boost/mpl/limits/list.hpp +++ b/boost/boost/mpl/limits/list.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_LIMIT_LIST_SIZE) diff --git a/boost/boost/mpl/limits/unrolling.hpp b/boost/boost/mpl/limits/unrolling.hpp old mode 100755 new mode 100644 index 4ba3efb94f..3914f0aaab --- a/boost/boost/mpl/limits/unrolling.hpp +++ b/boost/boost/mpl/limits/unrolling.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: unrolling.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_LIMIT_UNROLLING) diff --git a/boost/boost/mpl/limits/vector.hpp b/boost/boost/mpl/limits/vector.hpp old mode 100755 new mode 100644 index 9a0accfa1b..5de3811c40 --- a/boost/boost/mpl/limits/vector.hpp +++ b/boost/boost/mpl/limits/vector.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE) diff --git a/boost/boost/mpl/list.hpp b/boost/boost/mpl/list.hpp index 838b8f4b12..6d968314a8 100644 --- a/boost/boost/mpl/list.hpp +++ b/boost/boost/mpl/list.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/aux_/O1_size.hpp b/boost/boost/mpl/list/aux_/O1_size.hpp index 6ef2cf7fa0..0d93dabe28 100644 --- a/boost/boost/mpl/list/aux_/O1_size.hpp +++ b/boost/boost/mpl/list/aux_/O1_size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/begin_end.hpp b/boost/boost/mpl/list/aux_/begin_end.hpp index dab60f318c..7fbddad59e 100644 --- a/boost/boost/mpl/list/aux_/begin_end.hpp +++ b/boost/boost/mpl/list/aux_/begin_end.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/clear.hpp b/boost/boost/mpl/list/aux_/clear.hpp index 247a4de536..3deafe7a0b 100644 --- a/boost/boost/mpl/list/aux_/clear.hpp +++ b/boost/boost/mpl/list/aux_/clear.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/empty.hpp b/boost/boost/mpl/list/aux_/empty.hpp index 6ab60cfee0..c282cfe3db 100644 --- a/boost/boost/mpl/list/aux_/empty.hpp +++ b/boost/boost/mpl/list/aux_/empty.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/front.hpp b/boost/boost/mpl/list/aux_/front.hpp index 8defa99450..eb0b689e4b 100644 --- a/boost/boost/mpl/list/aux_/front.hpp +++ b/boost/boost/mpl/list/aux_/front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/include_preprocessed.hpp b/boost/boost/mpl/list/aux_/include_preprocessed.hpp index 431b51f5d9..4e7f6e4501 100644 --- a/boost/boost/mpl/list/aux_/include_preprocessed.hpp +++ b/boost/boost/mpl/list/aux_/include_preprocessed.hpp @@ -8,7 +8,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! diff --git a/boost/boost/mpl/list/aux_/item.hpp b/boost/boost/mpl/list/aux_/item.hpp index 37ddff75e4..24b5e40602 100644 --- a/boost/boost/mpl/list/aux_/item.hpp +++ b/boost/boost/mpl/list/aux_/item.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/iterator.hpp b/boost/boost/mpl/list/aux_/iterator.hpp index b94126cf72..4d0431fd79 100644 --- a/boost/boost/mpl/list/aux_/iterator.hpp +++ b/boost/boost/mpl/list/aux_/iterator.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/numbered.hpp b/boost/boost/mpl/list/aux_/numbered.hpp index de8d4041d3..7b661e51e2 100644 --- a/boost/boost/mpl/list/aux_/numbered.hpp +++ b/boost/boost/mpl/list/aux_/numbered.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if defined(BOOST_PP_IS_ITERATING) diff --git a/boost/boost/mpl/list/aux_/numbered_c.hpp b/boost/boost/mpl/list/aux_/numbered_c.hpp index f3043827b1..0c8e9f6d11 100644 --- a/boost/boost/mpl/list/aux_/numbered_c.hpp +++ b/boost/boost/mpl/list/aux_/numbered_c.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if defined(BOOST_PP_IS_ITERATING) diff --git a/boost/boost/mpl/list/aux_/pop_front.hpp b/boost/boost/mpl/list/aux_/pop_front.hpp index e053391c84..9c72228971 100644 --- a/boost/boost/mpl/list/aux_/pop_front.hpp +++ b/boost/boost/mpl/list/aux_/pop_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/push_back.hpp b/boost/boost/mpl/list/aux_/push_back.hpp index 6adb7db762..8e9c34ba1c 100644 --- a/boost/boost/mpl/list/aux_/push_back.hpp +++ b/boost/boost/mpl/list/aux_/push_back.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/push_front.hpp b/boost/boost/mpl/list/aux_/push_front.hpp index a601fea169..942508b7a7 100644 --- a/boost/boost/mpl/list/aux_/push_front.hpp +++ b/boost/boost/mpl/list/aux_/push_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/size.hpp b/boost/boost/mpl/list/aux_/size.hpp index 4ecbab83ca..9d7191f2e1 100644 --- a/boost/boost/mpl/list/aux_/size.hpp +++ b/boost/boost/mpl/list/aux_/size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/aux_/tag.hpp b/boost/boost/mpl/list/aux_/tag.hpp index d44bfe40e8..e1a75337ad 100644 --- a/boost/boost/mpl/list/aux_/tag.hpp +++ b/boost/boost/mpl/list/aux_/tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { namespace aux { diff --git a/boost/boost/mpl/list/list0.hpp b/boost/boost/mpl/list/list0.hpp index 58e93cff56..3ecdac34c8 100644 --- a/boost/boost/mpl/list/list0.hpp +++ b/boost/boost/mpl/list/list0.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/list0_c.hpp b/boost/boost/mpl/list/list0_c.hpp index ed9bca5f43..066661faa5 100644 --- a/boost/boost/mpl/list/list0_c.hpp +++ b/boost/boost/mpl/list/list0_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/list/list10.hpp b/boost/boost/mpl/list/list10.hpp index 4a4ee19954..23546948c3 100644 --- a/boost/boost/mpl/list/list10.hpp +++ b/boost/boost/mpl/list/list10.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list10_c.hpp b/boost/boost/mpl/list/list10_c.hpp index e05ef87530..b1c8e1b274 100644 --- a/boost/boost/mpl/list/list10_c.hpp +++ b/boost/boost/mpl/list/list10_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list20.hpp b/boost/boost/mpl/list/list20.hpp index 9321192a49..29f7d5dde3 100644 --- a/boost/boost/mpl/list/list20.hpp +++ b/boost/boost/mpl/list/list20.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list20_c.hpp b/boost/boost/mpl/list/list20_c.hpp index bc807e664d..d7f772ce9c 100644 --- a/boost/boost/mpl/list/list20_c.hpp +++ b/boost/boost/mpl/list/list20_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list30.hpp b/boost/boost/mpl/list/list30.hpp index f736f8c590..704cbdf6f6 100644 --- a/boost/boost/mpl/list/list30.hpp +++ b/boost/boost/mpl/list/list30.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list30_c.hpp b/boost/boost/mpl/list/list30_c.hpp index e682086d99..54fd22f925 100644 --- a/boost/boost/mpl/list/list30_c.hpp +++ b/boost/boost/mpl/list/list30_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list40.hpp b/boost/boost/mpl/list/list40.hpp index 8560d8fa37..11d12e36aa 100644 --- a/boost/boost/mpl/list/list40.hpp +++ b/boost/boost/mpl/list/list40.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list40_c.hpp b/boost/boost/mpl/list/list40_c.hpp index 5c5bfdfa4d..0ae99fc08c 100644 --- a/boost/boost/mpl/list/list40_c.hpp +++ b/boost/boost/mpl/list/list40_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list50.hpp b/boost/boost/mpl/list/list50.hpp index dcaf18ebfd..4050a81cb0 100644 --- a/boost/boost/mpl/list/list50.hpp +++ b/boost/boost/mpl/list/list50.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/list/list50_c.hpp b/boost/boost/mpl/list/list50_c.hpp index 0f38e07d13..4b5b654038 100644 --- a/boost/boost/mpl/list/list50_c.hpp +++ b/boost/boost/mpl/list/list50_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: list50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/logical.hpp b/boost/boost/mpl/logical.hpp index 256ea32b18..f8b8fc3dba 100644 --- a/boost/boost/mpl/logical.hpp +++ b/boost/boost/mpl/logical.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: logical.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/long.hpp b/boost/boost/mpl/long.hpp old mode 100755 new mode 100644 index a3e35b16bb..1c79afd3d6 --- a/boost/boost/mpl/long.hpp +++ b/boost/boost/mpl/long.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: long.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/long_fwd.hpp b/boost/boost/mpl/long_fwd.hpp old mode 100755 new mode 100644 index 4c1b604603..17accd3976 --- a/boost/boost/mpl/long_fwd.hpp +++ b/boost/boost/mpl/long_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: long_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/minus.hpp b/boost/boost/mpl/minus.hpp old mode 100755 new mode 100644 index a737185a78..123b8afecb --- a/boost/boost/mpl/minus.hpp +++ b/boost/boost/mpl/minus.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: minus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME minus diff --git a/boost/boost/mpl/multiplies.hpp b/boost/boost/mpl/multiplies.hpp old mode 100755 new mode 100644 index 772b7bd869..1c0ec9f54e --- a/boost/boost/mpl/multiplies.hpp +++ b/boost/boost/mpl/multiplies.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: multiplies.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/negate.hpp b/boost/boost/mpl/negate.hpp old mode 100755 new mode 100644 index bb8bcdd2aa..3d51caf38c --- a/boost/boost/mpl/negate.hpp +++ b/boost/boost/mpl/negate.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: negate.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/next.hpp b/boost/boost/mpl/next.hpp index 3d4e7119b8..fcfb01bb11 100644 --- a/boost/boost/mpl/next.hpp +++ b/boost/boost/mpl/next.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: next.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/next_prior.hpp b/boost/boost/mpl/next_prior.hpp index 4a9655b040..c65d4c4d10 100644 --- a/boost/boost/mpl/next_prior.hpp +++ b/boost/boost/mpl/next_prior.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: next_prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/not.hpp b/boost/boost/mpl/not.hpp index 2abc0db049..9886d7d8b2 100644 --- a/boost/boost/mpl/not.hpp +++ b/boost/boost/mpl/not.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: not.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/not_equal_to.hpp b/boost/boost/mpl/not_equal_to.hpp index 00132b1eaa..b6997dffdf 100644 --- a/boost/boost/mpl/not_equal_to.hpp +++ b/boost/boost/mpl/not_equal_to.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: not_equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME not_equal_to diff --git a/boost/boost/mpl/numeric_cast.hpp b/boost/boost/mpl/numeric_cast.hpp old mode 100755 new mode 100644 index 808ede0687..f890e44ee8 --- a/boost/boost/mpl/numeric_cast.hpp +++ b/boost/boost/mpl/numeric_cast.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numeric_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/or.hpp b/boost/boost/mpl/or.hpp index 470644905d..16b42c1439 100644 --- a/boost/boost/mpl/or.hpp +++ b/boost/boost/mpl/or.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: or.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/pair.hpp b/boost/boost/mpl/pair.hpp index b3fb02658d..9336ca19ea 100644 --- a/boost/boost/mpl/pair.hpp +++ b/boost/boost/mpl/pair.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pair.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/placeholders.hpp b/boost/boost/mpl/placeholders.hpp index c1a38d9f4a..891a81851a 100644 --- a/boost/boost/mpl/placeholders.hpp +++ b/boost/boost/mpl/placeholders.hpp @@ -16,7 +16,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: placeholders.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ diff --git a/boost/boost/mpl/plus.hpp b/boost/boost/mpl/plus.hpp old mode 100755 new mode 100644 index 79642eb840..9f68c49bdc --- a/boost/boost/mpl/plus.hpp +++ b/boost/boost/mpl/plus.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: plus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME plus diff --git a/boost/boost/mpl/pop_back_fwd.hpp b/boost/boost/mpl/pop_back_fwd.hpp old mode 100755 new mode 100644 index 4fba829fa8..c8209a790a --- a/boost/boost/mpl/pop_back_fwd.hpp +++ b/boost/boost/mpl/pop_back_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pop_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/pop_front_fwd.hpp b/boost/boost/mpl/pop_front_fwd.hpp old mode 100755 new mode 100644 index 64d4c58e8e..eb78347b98 --- a/boost/boost/mpl/pop_front_fwd.hpp +++ b/boost/boost/mpl/pop_front_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pop_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/prior.hpp b/boost/boost/mpl/prior.hpp old mode 100755 new mode 100644 index e08d967004..b8f0dff2d5 --- a/boost/boost/mpl/prior.hpp +++ b/boost/boost/mpl/prior.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/protect.hpp b/boost/boost/mpl/protect.hpp index 4fad8352b6..e3daa4feef 100644 --- a/boost/boost/mpl/protect.hpp +++ b/boost/boost/mpl/protect.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: protect.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/push_back.hpp b/boost/boost/mpl/push_back.hpp index 96389a37dd..2e8ad068ec 100644 --- a/boost/boost/mpl/push_back.hpp +++ b/boost/boost/mpl/push_back.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/push_back_fwd.hpp b/boost/boost/mpl/push_back_fwd.hpp old mode 100755 new mode 100644 index 381aa299b2..ef04ff537f --- a/boost/boost/mpl/push_back_fwd.hpp +++ b/boost/boost/mpl/push_back_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/push_front.hpp b/boost/boost/mpl/push_front.hpp index 3c4283cc3e..ca943bbee5 100644 --- a/boost/boost/mpl/push_front.hpp +++ b/boost/boost/mpl/push_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/push_front_fwd.hpp b/boost/boost/mpl/push_front_fwd.hpp old mode 100755 new mode 100644 index 11123bf4a6..fa3667ca56 --- a/boost/boost/mpl/push_front_fwd.hpp +++ b/boost/boost/mpl/push_front_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/quote.hpp b/boost/boost/mpl/quote.hpp index 52f67bf62b..53b57124af 100644 --- a/boost/boost/mpl/quote.hpp +++ b/boost/boost/mpl/quote.hpp @@ -15,7 +15,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: quote.hpp 49272 2008-10-11 06:50:46Z agurtovoy $ -// $Date: 2008-10-11 02:50:46 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49272 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/remove_if.hpp b/boost/boost/mpl/remove_if.hpp index f707abd423..1275bd43dc 100644 --- a/boost/boost/mpl/remove_if.hpp +++ b/boost/boost/mpl/remove_if.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: remove_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/reverse_fold.hpp b/boost/boost/mpl/reverse_fold.hpp index 79b6ec7756..bcf3157d18 100644 --- a/boost/boost/mpl/reverse_fold.hpp +++ b/boost/boost/mpl/reverse_fold.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: reverse_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/same_as.hpp b/boost/boost/mpl/same_as.hpp index e95d55f0a1..c82cfd7caa 100644 --- a/boost/boost/mpl/same_as.hpp +++ b/boost/boost/mpl/same_as.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: same_as.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/sequence_tag.hpp b/boost/boost/mpl/sequence_tag.hpp old mode 100755 new mode 100644 index 41450ed36b..479175e3cb --- a/boost/boost/mpl/sequence_tag.hpp +++ b/boost/boost/mpl/sequence_tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: sequence_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/sequence_tag_fwd.hpp b/boost/boost/mpl/sequence_tag_fwd.hpp old mode 100755 new mode 100644 index 07d54a4ace..07a6707e00 --- a/boost/boost/mpl/sequence_tag_fwd.hpp +++ b/boost/boost/mpl/sequence_tag_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: sequence_tag_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/size.hpp b/boost/boost/mpl/size.hpp index 6ff2e65cbc..54b13cbb27 100644 --- a/boost/boost/mpl/size.hpp +++ b/boost/boost/mpl/size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/size_fwd.hpp b/boost/boost/mpl/size_fwd.hpp old mode 100755 new mode 100644 index 2bab81663d..8702da7f88 --- a/boost/boost/mpl/size_fwd.hpp +++ b/boost/boost/mpl/size_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ namespace boost { namespace mpl { diff --git a/boost/boost/mpl/size_t.hpp b/boost/boost/mpl/size_t.hpp index e72d77f8cd..54a05c6a22 100644 --- a/boost/boost/mpl/size_t.hpp +++ b/boost/boost/mpl/size_t.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size_t.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/size_t_fwd.hpp b/boost/boost/mpl/size_t_fwd.hpp index 84e903b041..396a521ffe 100644 --- a/boost/boost/mpl/size_t_fwd.hpp +++ b/boost/boost/mpl/size_t_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size_t_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/tag.hpp b/boost/boost/mpl/tag.hpp old mode 100755 new mode 100644 index 747646ccca..fc0aee233b --- a/boost/boost/mpl/tag.hpp +++ b/boost/boost/mpl/tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/times.hpp b/boost/boost/mpl/times.hpp old mode 100755 new mode 100644 index ea61eaff49..c73256df79 --- a/boost/boost/mpl/times.hpp +++ b/boost/boost/mpl/times.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: times.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #define AUX778076_OP_NAME times diff --git a/boost/boost/mpl/vector.hpp b/boost/boost/mpl/vector.hpp old mode 100755 new mode 100644 index 94858ff7c1..833f193150 --- a/boost/boost/mpl/vector.hpp +++ b/boost/boost/mpl/vector.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/aux_/O1_size.hpp b/boost/boost/mpl/vector/aux_/O1_size.hpp old mode 100755 new mode 100644 index 7697a24fff..3ca8d214cf --- a/boost/boost/mpl/vector/aux_/O1_size.hpp +++ b/boost/boost/mpl/vector/aux_/O1_size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/at.hpp b/boost/boost/mpl/vector/aux_/at.hpp old mode 100755 new mode 100644 index c859f2d001..9da05956c9 --- a/boost/boost/mpl/vector/aux_/at.hpp +++ b/boost/boost/mpl/vector/aux_/at.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/back.hpp b/boost/boost/mpl/vector/aux_/back.hpp old mode 100755 new mode 100644 index 4969e622d0..ce84c7a019 --- a/boost/boost/mpl/vector/aux_/back.hpp +++ b/boost/boost/mpl/vector/aux_/back.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/begin_end.hpp b/boost/boost/mpl/vector/aux_/begin_end.hpp old mode 100755 new mode 100644 index f2bedf3219..d79ef9a072 --- a/boost/boost/mpl/vector/aux_/begin_end.hpp +++ b/boost/boost/mpl/vector/aux_/begin_end.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/clear.hpp b/boost/boost/mpl/vector/aux_/clear.hpp old mode 100755 new mode 100644 index 5a5d2d03d8..3308518a2a --- a/boost/boost/mpl/vector/aux_/clear.hpp +++ b/boost/boost/mpl/vector/aux_/clear.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/empty.hpp b/boost/boost/mpl/vector/aux_/empty.hpp old mode 100755 new mode 100644 index 8e76c3e4ca..84c879222f --- a/boost/boost/mpl/vector/aux_/empty.hpp +++ b/boost/boost/mpl/vector/aux_/empty.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/front.hpp b/boost/boost/mpl/vector/aux_/front.hpp old mode 100755 new mode 100644 index 74b4c50084..ff2414eeb6 --- a/boost/boost/mpl/vector/aux_/front.hpp +++ b/boost/boost/mpl/vector/aux_/front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/include_preprocessed.hpp b/boost/boost/mpl/vector/aux_/include_preprocessed.hpp old mode 100755 new mode 100644 index 247b6edd87..5c16008218 --- a/boost/boost/mpl/vector/aux_/include_preprocessed.hpp +++ b/boost/boost/mpl/vector/aux_/include_preprocessed.hpp @@ -10,7 +10,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/item.hpp b/boost/boost/mpl/vector/aux_/item.hpp old mode 100755 new mode 100644 index 96002b9484..da2b01ba93 --- a/boost/boost/mpl/vector/aux_/item.hpp +++ b/boost/boost/mpl/vector/aux_/item.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/iterator.hpp b/boost/boost/mpl/vector/aux_/iterator.hpp old mode 100755 new mode 100644 index 5864affb8b..770ed15d0e --- a/boost/boost/mpl/vector/aux_/iterator.hpp +++ b/boost/boost/mpl/vector/aux_/iterator.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/numbered.hpp b/boost/boost/mpl/vector/aux_/numbered.hpp old mode 100755 new mode 100644 index 0e5acc016d..04265a39a4 --- a/boost/boost/mpl/vector/aux_/numbered.hpp +++ b/boost/boost/mpl/vector/aux_/numbered.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/numbered_c.hpp b/boost/boost/mpl/vector/aux_/numbered_c.hpp old mode 100755 new mode 100644 index dc1349784b..6a7cf40e5d --- a/boost/boost/mpl/vector/aux_/numbered_c.hpp +++ b/boost/boost/mpl/vector/aux_/numbered_c.hpp @@ -12,7 +12,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/pop_back.hpp b/boost/boost/mpl/vector/aux_/pop_back.hpp old mode 100755 new mode 100644 index aa902169de..a43a3a6b7d --- a/boost/boost/mpl/vector/aux_/pop_back.hpp +++ b/boost/boost/mpl/vector/aux_/pop_back.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pop_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/pop_front.hpp b/boost/boost/mpl/vector/aux_/pop_front.hpp old mode 100755 new mode 100644 index 854d1e7700..a448d25bf3 --- a/boost/boost/mpl/vector/aux_/pop_front.hpp +++ b/boost/boost/mpl/vector/aux_/pop_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp b/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/mpl/vector/aux_/push_back.hpp b/boost/boost/mpl/vector/aux_/push_back.hpp old mode 100755 new mode 100644 index b51c770f64..d8783ccb48 --- a/boost/boost/mpl/vector/aux_/push_back.hpp +++ b/boost/boost/mpl/vector/aux_/push_back.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/push_front.hpp b/boost/boost/mpl/vector/aux_/push_front.hpp old mode 100755 new mode 100644 index efa2aae841..26b5f0002c --- a/boost/boost/mpl/vector/aux_/push_front.hpp +++ b/boost/boost/mpl/vector/aux_/push_front.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/size.hpp b/boost/boost/mpl/vector/aux_/size.hpp old mode 100755 new mode 100644 index bd40b549c9..41b7be635b --- a/boost/boost/mpl/vector/aux_/size.hpp +++ b/boost/boost/mpl/vector/aux_/size.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/tag.hpp b/boost/boost/mpl/vector/aux_/tag.hpp old mode 100755 new mode 100644 index 77d627b25f..0f37e92adb --- a/boost/boost/mpl/vector/aux_/tag.hpp +++ b/boost/boost/mpl/vector/aux_/tag.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/aux_/vector0.hpp b/boost/boost/mpl/vector/aux_/vector0.hpp old mode 100755 new mode 100644 index 65c5544e0b..b3bb13bbaa --- a/boost/boost/mpl/vector/aux_/vector0.hpp +++ b/boost/boost/mpl/vector/aux_/vector0.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/vector0.hpp b/boost/boost/mpl/vector/vector0.hpp old mode 100755 new mode 100644 index 249ecbb8c9..9d18104eb7 --- a/boost/boost/mpl/vector/vector0.hpp +++ b/boost/boost/mpl/vector/vector0.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/vector0_c.hpp b/boost/boost/mpl/vector/vector0_c.hpp old mode 100755 new mode 100644 index 630af92a8f..eb1dcf98b1 --- a/boost/boost/mpl/vector/vector0_c.hpp +++ b/boost/boost/mpl/vector/vector0_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/vector/vector10.hpp b/boost/boost/mpl/vector/vector10.hpp old mode 100755 new mode 100644 index 344c92cfcc..848dd82c0b --- a/boost/boost/mpl/vector/vector10.hpp +++ b/boost/boost/mpl/vector/vector10.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector10_c.hpp b/boost/boost/mpl/vector/vector10_c.hpp old mode 100755 new mode 100644 index 05e97ad7c3..4e6cf3b6e4 --- a/boost/boost/mpl/vector/vector10_c.hpp +++ b/boost/boost/mpl/vector/vector10_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector20.hpp b/boost/boost/mpl/vector/vector20.hpp old mode 100755 new mode 100644 index ffa867e036..173eacfffe --- a/boost/boost/mpl/vector/vector20.hpp +++ b/boost/boost/mpl/vector/vector20.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector20_c.hpp b/boost/boost/mpl/vector/vector20_c.hpp old mode 100755 new mode 100644 index cc13d517dc..c6b7187c26 --- a/boost/boost/mpl/vector/vector20_c.hpp +++ b/boost/boost/mpl/vector/vector20_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector30.hpp b/boost/boost/mpl/vector/vector30.hpp old mode 100755 new mode 100644 index f54c61cf1b..476ec354b9 --- a/boost/boost/mpl/vector/vector30.hpp +++ b/boost/boost/mpl/vector/vector30.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector30_c.hpp b/boost/boost/mpl/vector/vector30_c.hpp old mode 100755 new mode 100644 index a8e3e60d98..c20d8f980e --- a/boost/boost/mpl/vector/vector30_c.hpp +++ b/boost/boost/mpl/vector/vector30_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector40.hpp b/boost/boost/mpl/vector/vector40.hpp old mode 100755 new mode 100644 index 2d24b6d87a..69203d0cb4 --- a/boost/boost/mpl/vector/vector40.hpp +++ b/boost/boost/mpl/vector/vector40.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector40_c.hpp b/boost/boost/mpl/vector/vector40_c.hpp old mode 100755 new mode 100644 index 9179b263e9..bd7310c148 --- a/boost/boost/mpl/vector/vector40_c.hpp +++ b/boost/boost/mpl/vector/vector40_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector50.hpp b/boost/boost/mpl/vector/vector50.hpp old mode 100755 new mode 100644 index 0050483b21..4c3e23181f --- a/boost/boost/mpl/vector/vector50.hpp +++ b/boost/boost/mpl/vector/vector50.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/vector/vector50_c.hpp b/boost/boost/mpl/vector/vector50_c.hpp old mode 100755 new mode 100644 index 04967421fb..2d2e705601 --- a/boost/boost/mpl/vector/vector50_c.hpp +++ b/boost/boost/mpl/vector/vector50_c.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: vector50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #if !defined(BOOST_MPL_PREPROCESSING_MODE) diff --git a/boost/boost/mpl/void.hpp b/boost/boost/mpl/void.hpp index f464acb551..ad5aa56460 100644 --- a/boost/boost/mpl/void.hpp +++ b/boost/boost/mpl/void.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: void.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/mpl/void_fwd.hpp b/boost/boost/mpl/void_fwd.hpp index 0dcd6392a7..9643dec302 100644 --- a/boost/boost/mpl/void_fwd.hpp +++ b/boost/boost/mpl/void_fwd.hpp @@ -11,7 +11,7 @@ // See http://www.boost.org/libs/mpl for documentation. // $Id: void_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ // $Revision: 49267 $ #include diff --git a/boost/boost/none.hpp b/boost/boost/none.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/none_t.hpp b/boost/boost/none_t.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/numeric/conversion/converter_policies.hpp b/boost/boost/numeric/conversion/converter_policies.hpp index b0d741b8e3..e7a5e67ce9 100644 --- a/boost/boost/numeric/conversion/converter_policies.hpp +++ b/boost/boost/numeric/conversion/converter_policies.hpp @@ -13,6 +13,7 @@ #include // for std::bad_cast #include // for std::floor and std::ceil +#include #include @@ -158,10 +159,17 @@ struct def_overflow_handler { void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow) { +#ifndef BOOST_NO_EXCEPTIONS if ( r == cNegOverflow ) throw negative_overflow() ; else if ( r == cPosOverflow ) throw positive_overflow() ; +#else + if ( r == cNegOverflow ) + ::boost::throw_exception(negative_overflow()) ; + else if ( r == cPosOverflow ) + ::boost::throw_exception(positive_overflow()) ; +#endif } } ; diff --git a/boost/boost/optional/optional.hpp b/boost/boost/optional/optional.hpp index ec9006eef9..0d6dba405d 100644 --- a/boost/boost/optional/optional.hpp +++ b/boost/boost/optional/optional.hpp @@ -890,12 +890,12 @@ bool operator >= ( optional const& x, none_t y ) template inline -bool operator == ( none_t x, optional const& y ) +bool operator == ( none_t , optional const& y ) { return equal_pointees(optional() ,y); } template inline -bool operator < ( none_t x, optional const& y ) +bool operator < ( none_t , optional const& y ) { return less_pointees(optional() ,y); } template diff --git a/boost/boost/range/algorithm/equal.hpp b/boost/boost/range/algorithm/equal.hpp new file mode 100644 index 0000000000..4472bb19db --- /dev/null +++ b/boost/boost/range/algorithm/equal.hpp @@ -0,0 +1,198 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// +#ifndef BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED +#define BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED + +#include +#include +#include + +namespace boost +{ + namespace range_detail + { + // An implementation of equality comparison that is optimized for iterator + // traversal categories less than RandomAccessTraversal. + template< class SinglePassTraversalReadableIterator1, + class SinglePassTraversalReadableIterator2, + class IteratorCategoryTag1, + class IteratorCategoryTag2 > + inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, + SinglePassTraversalReadableIterator1 last1, + SinglePassTraversalReadableIterator2 first2, + SinglePassTraversalReadableIterator2 last2, + IteratorCategoryTag1, + IteratorCategoryTag2 ) + { + while (true) + { + // If we have reached the end of the left range then this is + // the end of the loop. They are equal if and only if we have + // simultaneously reached the end of the right range. + if (first1 == last1) + return first2 == last2; + + // If we have reached the end of the right range at this line + // it indicates that the right range is shorter than the left + // and hence the result is false. + if (first2 == last2) + return false; + + // continue looping if and only if the values are equal + if (*first1 != *first2) + break; + + ++first1; + ++first2; + } + + // Reaching this line in the algorithm indicates that a value + // inequality has been detected. + return false; + } + + template< class SinglePassTraversalReadableIterator1, + class SinglePassTraversalReadableIterator2, + class IteratorCategoryTag1, + class IteratorCategoryTag2, + class BinaryPredicate > + inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, + SinglePassTraversalReadableIterator1 last1, + SinglePassTraversalReadableIterator2 first2, + SinglePassTraversalReadableIterator2 last2, + BinaryPredicate pred, + IteratorCategoryTag1, + IteratorCategoryTag2 ) + { + while (true) + { + // If we have reached the end of the left range then this is + // the end of the loop. They are equal if and only if we have + // simultaneously reached the end of the right range. + if (first1 == last1) + return first2 == last2; + + // If we have reached the end of the right range at this line + // it indicates that the right range is shorter than the left + // and hence the result is false. + if (first2 == last2) + return false; + + // continue looping if and only if the values are equal + if (!pred(*first1, *first2)) + break; + + ++first1; + ++first2; + } + + // Reaching this line in the algorithm indicates that a value + // inequality has been detected. + return false; + } + + // An implementation of equality comparison that is optimized for + // random access iterators. + template< class RandomAccessTraversalReadableIterator1, + class RandomAccessTraversalReadableIterator2 > + inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, + RandomAccessTraversalReadableIterator1 last1, + RandomAccessTraversalReadableIterator2 first2, + RandomAccessTraversalReadableIterator2 last2, + std::random_access_iterator_tag, + std::random_access_iterator_tag ) + { + return ((last1 - first1) == (last2 - first2)) + && std::equal(first1, last1, first2); + } + + template< class RandomAccessTraversalReadableIterator1, + class RandomAccessTraversalReadableIterator2, + class BinaryPredicate > + inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, + RandomAccessTraversalReadableIterator1 last1, + RandomAccessTraversalReadableIterator2 first2, + RandomAccessTraversalReadableIterator2 last2, + BinaryPredicate pred ) + { + return ((last1 - first1) == (last2 - first2)) + && std::equal(first1, last1, first2, pred); + } + + template< class SinglePassTraversalReadableIterator1, + class SinglePassTraversalReadableIterator2 > + inline bool equal( SinglePassTraversalReadableIterator1 first1, + SinglePassTraversalReadableIterator1 last1, + SinglePassTraversalReadableIterator2 first2, + SinglePassTraversalReadableIterator2 last2 ) + { + BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; + BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; + + return equal_impl(first1, last1, first2, last2, tag1, tag2); + } + + template< class SinglePassTraversalReadableIterator1, + class SinglePassTraversalReadableIterator2, + class BinaryPredicate > + inline bool equal( SinglePassTraversalReadableIterator1 first1, + SinglePassTraversalReadableIterator1 last1, + SinglePassTraversalReadableIterator2 first2, + SinglePassTraversalReadableIterator2 last2, + BinaryPredicate pred ) + { + BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; + BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; + + return equal_impl(first1, last1, first2, last2, pred, tag1, tag2); + } + + } // namespace range_detail + + namespace range + { + + /// \brief template function equal + /// + /// range-based version of the equal std algorithm + /// + /// \pre SinglePassRange1 is a model of the SinglePassRangeConcept + /// \pre SinglePassRange2 is a model of the SinglePassRangeConcept + /// \pre BinaryPredicate is a model of the BinaryPredicateConcept + template< class SinglePassRange1, class SinglePassRange2 > + inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 ) + { + BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); + BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); + + return ::boost::range_detail::equal( + ::boost::begin(rng1), ::boost::end(rng1), + ::boost::begin(rng2), ::boost::end(rng2) ); + } + + /// \overload + template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > + inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2, + BinaryPredicate pred ) + { + BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); + BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); + + return ::boost::range_detail::equal( + ::boost::begin(rng1), ::boost::end(rng1), + ::boost::begin(rng2), ::boost::end(rng2), + pred); + } + + } // namespace range + using ::boost::range::equal; +} // namespace boost + +#endif // include guard diff --git a/boost/boost/range/begin.hpp b/boost/boost/range/begin.hpp new file mode 100644 index 0000000000..c6684887f5 --- /dev/null +++ b/boost/boost/range/begin.hpp @@ -0,0 +1,143 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_BEGIN_HPP +#define BOOST_RANGE_BEGIN_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +#include +#else + +#include + +namespace boost +{ + +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ +namespace range_detail +{ +#endif + + ////////////////////////////////////////////////////////////////////// + // primary template + ////////////////////////////////////////////////////////////////////// + + template< typename C > + inline BOOST_DEDUCED_TYPENAME range_iterator::type + range_begin( C& c ) + { + // + // If you get a compile-error here, it is most likely because + // you have not implemented range_begin() properly in + // the namespace of C + // + return c.begin(); + } + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template< typename Iterator > + inline Iterator range_begin( const std::pair& p ) + { + return p.first; + } + + template< typename Iterator > + inline Iterator range_begin( std::pair& p ) + { + return p.first; + } + + ////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////// + + // + // May this be discarded? Or is it needed for bad compilers? + // + template< typename T, std::size_t sz > + inline const T* range_begin( const T (&a)[sz] ) + { + return a; + } + + template< typename T, std::size_t sz > + inline T* range_begin( T (&a)[sz] ) + { + return a; + } + + +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ +} // namespace 'range_detail' +#endif + +// Use a ADL namespace barrier to avoid ambiguity with other unqualified +// calls. This is particularly important with C++0x encouraging +// unqualified calls to begin/end. +namespace range_adl_barrier +{ + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( T& r ) +{ +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_begin( r ); +} + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( const T& r ) +{ +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_begin( r ); +} + + } // namespace range_adl_barrier +} // namespace boost + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +namespace boost +{ + namespace range_adl_barrier + { + template< class T > + inline BOOST_DEDUCED_TYPENAME range_iterator::type + const_begin( const T& r ) + { + return boost::range_adl_barrier::begin( r ); + } + } // namespace range_adl_barrier + + using namespace range_adl_barrier; +} // namespace boost + +#endif + diff --git a/boost/boost/range/concepts.hpp b/boost/boost/range/concepts.hpp new file mode 100644 index 0000000000..5965293a3e --- /dev/null +++ b/boost/boost/range/concepts.hpp @@ -0,0 +1,366 @@ +// Boost.Range library concept checks +// +// Copyright Neil Groves 2009. Use, modification and distribution +// are subject to the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// Copyright Daniel Walker 2006. Use, modification and distribution +// are subject to the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_CONCEPTS_HPP +#define BOOST_RANGE_CONCEPTS_HPP + +#include +#include +#include +#include +#include +#include +#include + +/*! + * \file + * \brief Concept checks for the Boost Range library. + * + * The structures in this file may be used in conjunction with the + * Boost Concept Check library to insure that the type of a function + * parameter is compatible with a range concept. If not, a meaningful + * compile time error is generated. Checks are provided for the range + * concepts related to iterator traversal categories. For example, the + * following line checks that the type T models the ForwardRange + * concept. + * + * \code + * BOOST_CONCEPT_ASSERT((ForwardRangeConcept)); + * \endcode + * + * A different concept check is required to ensure writeable value + * access. For example to check for a ForwardRange that can be written + * to, the following code is required. + * + * \code + * BOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept)); + * \endcode + * + * \see http://www.boost.org/libs/range/doc/range.html for details + * about range concepts. + * \see http://www.boost.org/libs/iterator/doc/iterator_concepts.html + * for details about iterator concepts. + * \see http://www.boost.org/libs/concept_check/concept_check.htm for + * details about concept checks. + */ + +namespace boost { + + namespace range_detail { + +#ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT + +// List broken compiler versions here: + #ifdef __GNUC__ + // GNUC 4.2 has strange issues correctly detecting compliance with the Concepts + // hence the least disruptive approach is to turn-off the concept checking for + // this version of the compiler. + #if __GNUC__ == 4 && __GNUC_MINOR__ == 2 + #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 + #endif + #endif + + #ifdef __BORLANDC__ + #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 + #endif + + #ifdef __PATHCC__ + #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 + #endif + +// Default to using the concept asserts unless we have defined it off +// during the search for black listed compilers. + #ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT + #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 1 + #endif + +#endif + +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + #define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x ) +#else + #define BOOST_RANGE_CONCEPT_ASSERT( x ) +#endif + + // Rationale for the inclusion of redefined iterator concept + // classes: + // + // The Range algorithms often do not require that the iterators are + // Assignable or default constructable, but the correct standard + // conformant iterators do require the iterators to be a model of the + // Assignable concept. + // Iterators that contains a functor that is not assignable therefore + // are not correct models of the standard iterator concepts, + // despite being adequate for most algorithms. An example of this + // use case is the combination of the boost::adaptors::filtered + // class with a boost::lambda::bind generated functor. + // Ultimately modeling the range concepts using composition + // with the Boost.Iterator concepts would render the library + // incompatible with many common Boost.Lambda expressions. + template + struct IncrementableIteratorConcept : CopyConstructible + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + typedef BOOST_DEDUCED_TYPENAME iterator_traversal::type traversal_category; + + BOOST_RANGE_CONCEPT_ASSERT(( + Convertible< + traversal_category, + incrementable_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(IncrementableIteratorConcept) + { + ++i; + (void)i++; + } + private: + Iterator i; +#endif + }; + + template + struct SinglePassIteratorConcept + : IncrementableIteratorConcept + , EqualityComparable + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT(( + Convertible< + BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category, + single_pass_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(SinglePassIteratorConcept) + { + Iterator i2(++i); + boost::ignore_unused_variable_warning(i2); + + // deliberately we are loose with the postfix version for the single pass + // iterator due to the commonly poor adherence to the specification means that + // many algorithms would be unusable, whereas actually without the check they + // work + (void)(i++); + + BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r1(*i); + boost::ignore_unused_variable_warning(r1); + + BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r2(*(++i)); + boost::ignore_unused_variable_warning(r2); + } + private: + Iterator i; +#endif + }; + + template + struct ForwardIteratorConcept + : SinglePassIteratorConcept + , DefaultConstructible + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::difference_type difference_type; + + BOOST_MPL_ASSERT((is_integral)); + BOOST_MPL_ASSERT_RELATION(std::numeric_limits::is_signed, ==, true); + + BOOST_RANGE_CONCEPT_ASSERT(( + Convertible< + BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category, + forward_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(ForwardIteratorConcept) + { + // See the above note in the SinglePassIteratorConcept about the handling of the + // postfix increment. Since with forward and better iterators there is no need + // for a proxy, we can sensibly require that the dereference result + // is convertible to reference. + Iterator i2(i++); + boost::ignore_unused_variable_warning(i2); + BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r(*(i++)); + boost::ignore_unused_variable_warning(r); + } + private: + Iterator i; +#endif + }; + + template + struct BidirectionalIteratorConcept + : ForwardIteratorConcept + { + #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT(( + Convertible< + BOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category, + bidirectional_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept) + { + --i; + (void)i--; + } + private: + Iterator i; + #endif + }; + + template + struct RandomAccessIteratorConcept + : BidirectionalIteratorConcept + { + #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT(( + Convertible< + BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category, + random_access_traversal_tag + >)); + + BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept) + { + i += n; + i = i + n; + i = n + i; + i -= n; + i = i - n; + n = i - j; + } + private: + BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n; + Iterator i; + Iterator j; + #endif + }; + + } // namespace range_detail + + //! Check if a type T models the SinglePassRange range concept. + template + struct SinglePassRangeConcept + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + typedef BOOST_DEDUCED_TYPENAME range_iterator::type const_iterator; + typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator; + + BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept)); + BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept)); + + BOOST_CONCEPT_USAGE(SinglePassRangeConcept) + { + // This has been modified from assigning to this->i + // (where i was a member variable) to improve + // compatibility with Boost.Lambda + iterator i1 = boost::begin(*m_range); + iterator i2 = boost::end(*m_range); + + ignore_unused_variable_warning(i1); + ignore_unused_variable_warning(i2); + + const_constraints(*m_range); + } + + private: + void const_constraints(const T& const_range) + { + const_iterator ci1 = boost::begin(const_range); + const_iterator ci2 = boost::end(const_range); + + ignore_unused_variable_warning(ci1); + ignore_unused_variable_warning(ci2); + } + + // Rationale: + // The type of m_range is T* rather than T because it allows + // T to be an abstract class. The other obvious alternative of + // T& produces a warning on some compilers. + T* m_range; +#endif + }; + + //! Check if a type T models the ForwardRange range concept. + template + struct ForwardRangeConcept : SinglePassRangeConcept + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept)); + BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept)); +#endif + }; + + template + struct WriteableRangeConcept + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator; + + BOOST_CONCEPT_USAGE(WriteableRangeConcept) + { + *i = v; + } + private: + iterator i; + BOOST_DEDUCED_TYPENAME range_value::type v; +#endif + }; + + //! Check if a type T models the WriteableForwardRange range concept. + template + struct WriteableForwardRangeConcept + : ForwardRangeConcept + , WriteableRangeConcept + { + }; + + //! Check if a type T models the BidirectionalRange range concept. + template + struct BidirectionalRangeConcept : ForwardRangeConcept + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT((BidirectionalIteratorConcept)); + BOOST_RANGE_CONCEPT_ASSERT((BidirectionalIteratorConcept)); +#endif + }; + + //! Check if a type T models the WriteableBidirectionalRange range concept. + template + struct WriteableBidirectionalRangeConcept + : BidirectionalRangeConcept + , WriteableRangeConcept + { + }; + + //! Check if a type T models the RandomAccessRange range concept. + template + struct RandomAccessRangeConcept : BidirectionalRangeConcept + { +#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT + BOOST_RANGE_CONCEPT_ASSERT((RandomAccessIteratorConcept)); + BOOST_RANGE_CONCEPT_ASSERT((RandomAccessIteratorConcept)); +#endif + }; + + //! Check if a type T models the WriteableRandomAccessRange range concept. + template + struct WriteableRandomAccessRangeConcept + : RandomAccessRangeConcept + , WriteableRangeConcept + { + }; + +} // namespace boost + +#endif // BOOST_RANGE_CONCEPTS_HPP diff --git a/boost/boost/range/config.hpp b/boost/boost/range/config.hpp new file mode 100644 index 0000000000..4e7fb24f89 --- /dev/null +++ b/boost/boost/range/config.hpp @@ -0,0 +1,54 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_CONFIG_HPP +#define BOOST_RANGE_CONFIG_HPP + +#include + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_RANGE_DEDUCED_TYPENAME +#error "macro already defined!" +#endif + +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +# define BOOST_RANGE_DEDUCED_TYPENAME typename +#else +# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS) +# define BOOST_RANGE_DEDUCED_TYPENAME typename +# else +# define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME +# endif +#endif + +#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT +#error "macro already defined!" +#endif + +#if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) +#define BOOST_RANGE_NO_ARRAY_SUPPORT 1 +#endif + +#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT +#define BOOST_RANGE_ARRAY_REF() (boost_range_array) +#define BOOST_RANGE_NO_STATIC_ASSERT +#else +#define BOOST_RANGE_ARRAY_REF() (&boost_range_array) +#endif + + + +#endif + diff --git a/boost/boost/range/const_iterator.hpp b/boost/boost/range/const_iterator.hpp new file mode 100644 index 0000000000..875320fb00 --- /dev/null +++ b/boost/boost/range/const_iterator.hpp @@ -0,0 +1,67 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_CONST_ITERATOR_HPP +#define BOOST_RANGE_CONST_ITERATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#include +#else + +#include +#include +#include +#include + +namespace boost +{ + ////////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////////// + + namespace range_detail { + BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator ) + } + + template< typename C > + struct range_const_iterator : range_detail::extract_const_iterator + {}; + + ////////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////////// + + template< typename Iterator > + struct range_const_iterator< std::pair > + { + typedef Iterator type; + }; + + ////////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////////// + + template< typename T, std::size_t sz > + struct range_const_iterator< T[sz] > + { + typedef const T* type; + }; + +} // namespace boost + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif diff --git a/boost/boost/range/detail/begin.hpp b/boost/boost/range/detail/begin.hpp new file mode 100644 index 0000000000..f3da7323a4 --- /dev/null +++ b/boost/boost/range/detail/begin.hpp @@ -0,0 +1,94 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_BEGIN_HPP +#define BOOST_RANGE_DETAIL_BEGIN_HPP + +#include // BOOST_MSVC +#include +#include +#include +#if BOOST_WORKAROUND(BOOST_MSVC, < 1310) +# include +#endif + +namespace boost +{ + + namespace range_detail + { + template< typename T > + struct range_begin; + + ////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_begin + { + template< typename C > + static BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type fun( C& c ) + { + return c.begin(); + }; + }; + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_begin + { + template< typename P > + static BOOST_RANGE_DEDUCED_TYPENAME range_iterator

::type fun( const P& p ) + { + return p.first; + } + }; + + ////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_begin + { + #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310) + template< typename T, std::size_t sz > + static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] ) + { + return boost_range_array; + } + #else + template + static BOOST_RANGE_DEDUCED_TYPENAME range_value::type* fun(T& t) + { + return t; + } + #endif + }; + + } // namespace 'range_detail' + + namespace range_adl_barrier + { + template< typename C > + inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type + begin( C& c ) + { + return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); + } + } +} // namespace 'boost' + + +#endif diff --git a/boost/boost/range/detail/common.hpp b/boost/boost/range/detail/common.hpp new file mode 100644 index 0000000000..f7539f5f68 --- /dev/null +++ b/boost/boost/range/detail/common.hpp @@ -0,0 +1,117 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_COMMON_HPP +#define BOOST_RANGE_DETAIL_COMMON_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include + +////////////////////////////////////////////////////////////////////////////// +// missing partial specialization workaround. +////////////////////////////////////////////////////////////////////////////// + +namespace boost +{ + namespace range_detail + { + // 1 = std containers + // 2 = std::pair + // 3 = const std::pair + // 4 = array + // 5 = const array + // 6 = char array + // 7 = wchar_t array + // 8 = char* + // 9 = const char* + // 10 = whar_t* + // 11 = const wchar_t* + // 12 = string + + typedef mpl::int_<1>::type std_container_; + typedef mpl::int_<2>::type std_pair_; + typedef mpl::int_<3>::type const_std_pair_; + typedef mpl::int_<4>::type array_; + typedef mpl::int_<5>::type const_array_; + typedef mpl::int_<6>::type char_array_; + typedef mpl::int_<7>::type wchar_t_array_; + typedef mpl::int_<8>::type char_ptr_; + typedef mpl::int_<9>::type const_char_ptr_; + typedef mpl::int_<10>::type wchar_t_ptr_; + typedef mpl::int_<11>::type const_wchar_t_ptr_; + typedef mpl::int_<12>::type string_; + + template< typename C > + struct range_helper + { + static C* c; + static C ptr; + + BOOST_STATIC_CONSTANT( bool, is_pair_ = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_char_ptr_ = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_const_char_ptr_ = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_ = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_ = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_char_array_ = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_wchar_t_array_ = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) ); + BOOST_STATIC_CONSTANT( bool, is_string_ = (boost::type_traits::ice_or::value )); + BOOST_STATIC_CONSTANT( bool, is_array_ = boost::is_array::value ); + + }; + + template< typename C > + class range + { + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_pair_, + boost::range_detail::std_pair_, + void >::type pair_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_array_, + boost::range_detail::array_, + pair_t >::type array_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_string_, + boost::range_detail::string_, + array_t >::type string_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_char_ptr_, + boost::range_detail::const_char_ptr_, + string_t >::type const_char_ptr_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_ptr_, + boost::range_detail::char_ptr_, + const_char_ptr_t >::type char_ptr_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_wchar_t_ptr_, + boost::range_detail::const_wchar_t_ptr_, + char_ptr_t >::type const_wchar_ptr_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_ptr_, + boost::range_detail::wchar_t_ptr_, + const_wchar_ptr_t >::type wchar_ptr_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_array_, + boost::range_detail::wchar_t_array_, + wchar_ptr_t >::type wchar_array_t; + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_array_, + boost::range_detail::char_array_, + wchar_array_t >::type char_array_t; + public: + typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::is_void::value, + boost::range_detail::std_container_, + char_array_t >::type type; + }; // class 'range' + } +} + +#endif + diff --git a/boost/boost/range/detail/const_iterator.hpp b/boost/boost/range/detail/const_iterator.hpp new file mode 100644 index 0000000000..e5cb34a790 --- /dev/null +++ b/boost/boost/range/detail/const_iterator.hpp @@ -0,0 +1,71 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP +#define BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP + +#include +#include + +////////////////////////////////////////////////////////////////////////////// +// missing partial specialization workaround. +////////////////////////////////////////////////////////////////////////////// + +namespace boost +{ + namespace range_detail + { + template< typename T > + struct range_const_iterator_; + + template<> + struct range_const_iterator_ + { + template< typename C > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type; + }; + }; + + template<> + struct range_const_iterator_ + { + template< typename P > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type; + }; + }; + + + template<> + struct range_const_iterator_ + { + template< typename T > + struct pts + { + typedef const BOOST_RANGE_DEDUCED_TYPENAME + remove_extent::type* type; + }; + }; + } + + template< typename C > + class range_const_iterator + { + typedef BOOST_DEDUCED_TYPENAME range_detail::range::type c_type; + public: + typedef BOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_::BOOST_NESTED_TEMPLATE pts::type type; + }; + +} + +#endif diff --git a/boost/boost/range/detail/end.hpp b/boost/boost/range/detail/end.hpp new file mode 100644 index 0000000000..8b5f35d80b --- /dev/null +++ b/boost/boost/range/detail/end.hpp @@ -0,0 +1,101 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_END_HPP +#define BOOST_RANGE_DETAIL_END_HPP + +#include // BOOST_MSVC +#include + +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# include +#else +# include +# include +# include +# if BOOST_WORKAROUND(BOOST_MSVC, < 1310) +# include +# endif + +namespace boost +{ + namespace range_detail + { + template< typename T > + struct range_end; + + ////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename C > + static BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type + fun( C& c ) + { + return c.end(); + }; + }; + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename P > + static BOOST_RANGE_DEDUCED_TYPENAME range_iterator

::type + fun( const P& p ) + { + return p.second; + } + }; + + ////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310) + template< typename T, std::size_t sz > + static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] ) + { + return boost::range_detail::array_end( boost_range_array ); + } + #else + template + static BOOST_RANGE_DEDUCED_TYPENAME remove_extent::type* fun(T& t) + { + return t + remove_extent::size; + } + #endif + }; + + } // namespace 'range_detail' + + namespace range_adl_barrier + { + template< typename C > + inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type + end( C& c ) + { + return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); + } + } // namespace range_adl_barrier + +} // namespace 'boost' + +# endif // VC6 +#endif diff --git a/boost/boost/range/detail/extract_optional_type.hpp b/boost/boost/range/detail/extract_optional_type.hpp new file mode 100644 index 0000000000..8292e34fa6 --- /dev/null +++ b/boost/boost/range/detail/extract_optional_type.hpp @@ -0,0 +1,52 @@ +// Boost.Range library +// +// Copyright Arno Schoedl & Neil Groves 2009. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// +#ifndef BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED +#define BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_NO_PARTIAL_TEMPLATE_SPECIALIZATION + +#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef ) \ + template< typename C > \ + struct extract_ ## a_typedef \ + { \ + typedef BOOST_DEDUCED_TYPENAME C::a_typedef type; \ + }; + +#else + +namespace boost { + namespace range_detail { + template< typename T > struct exists { typedef void type; }; + } +} + +// Defines extract_some_typedef which exposes T::some_typedef as +// extract_some_typedef::type if T::some_typedef exists. Otherwise +// extract_some_typedef is empty. +#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef ) \ + template< typename C, typename Enable=void > \ + struct extract_ ## a_typedef \ + {}; \ + template< typename C > \ + struct extract_ ## a_typedef< C \ + , BOOST_DEDUCED_TYPENAME boost::range_detail::exists< BOOST_DEDUCED_TYPENAME C::a_typedef >::type \ + > { \ + typedef BOOST_DEDUCED_TYPENAME C::a_typedef type; \ + }; + +#endif + +#endif // include guard diff --git a/boost/boost/range/detail/implementation_help.hpp b/boost/boost/range/detail/implementation_help.hpp new file mode 100644 index 0000000000..1f7d163edc --- /dev/null +++ b/boost/boost/range/detail/implementation_help.hpp @@ -0,0 +1,103 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP +#define BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP + +#include +#include +#include +#include +#include + +#ifndef BOOST_NO_CWCHAR +#include +#endif + +namespace boost +{ + namespace range_detail + { + template + inline void boost_range_silence_warning( const T& ) { } + + ///////////////////////////////////////////////////////////////////// + // end() help + ///////////////////////////////////////////////////////////////////// + + inline const char* str_end( const char* s, const char* ) + { + return s + strlen( s ); + } + +#ifndef BOOST_NO_CWCHAR + inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) + { + return s + wcslen( s ); + } +#else + inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) + { + if( s == 0 || s[0] == 0 ) + return s; + while( *++s != 0 ) + ; + return s; + } +#endif + + template< class Char > + inline Char* str_end( Char* s ) + { + return const_cast( str_end( s, s ) ); + } + + template< class T, std::size_t sz > + inline T* array_end( T BOOST_RANGE_ARRAY_REF()[sz] ) + { + return boost_range_array + sz; + } + + template< class T, std::size_t sz > + inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] ) + { + return boost_range_array + sz; + } + + ///////////////////////////////////////////////////////////////////// + // size() help + ///////////////////////////////////////////////////////////////////// + + template< class Char > + inline std::size_t str_size( const Char* const& s ) + { + return str_end( s ) - s; + } + + template< class T, std::size_t sz > + inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] ) + { + boost_range_silence_warning( boost_range_array ); + return sz; + } + + template< class T, std::size_t sz > + inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] ) + { + boost_range_silence_warning( boost_range_array ); + return sz; + } + + } // namespace 'range_detail' + +} // namespace 'boost' + + +#endif diff --git a/boost/boost/range/detail/iterator.hpp b/boost/boost/range/detail/iterator.hpp new file mode 100644 index 0000000000..58346d47d1 --- /dev/null +++ b/boost/boost/range/detail/iterator.hpp @@ -0,0 +1,78 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_ITERATOR_HPP +#define BOOST_RANGE_DETAIL_ITERATOR_HPP + +#include +#include + +#include + +////////////////////////////////////////////////////////////////////////////// +// missing partial specialization workaround. +////////////////////////////////////////////////////////////////////////////// + +namespace boost +{ + namespace range_detail + { + template< typename T > + struct range_iterator_ { + template< typename C > + struct pts + { + typedef int type; + }; + }; + + template<> + struct range_iterator_ + { + template< typename C > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME C::iterator type; + }; + }; + + template<> + struct range_iterator_ + { + template< typename P > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type; + }; + }; + + template<> + struct range_iterator_ + { + template< typename T > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME + remove_extent::type* type; + }; + }; + + } + + template< typename C > + class range_mutable_iterator + { + typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type c_type; + public: + typedef typename range_detail::range_iterator_::BOOST_NESTED_TEMPLATE pts::type type; + }; +} + +#endif diff --git a/boost/boost/range/detail/misc_concept.hpp b/boost/boost/range/detail/misc_concept.hpp new file mode 100644 index 0000000000..74cb919f27 --- /dev/null +++ b/boost/boost/range/detail/misc_concept.hpp @@ -0,0 +1,33 @@ +// Boost.Range library concept checks +// +// Copyright Neil Groves 2009. Use, modification and distribution +// are subject to the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED +#define BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED + +#include + +namespace boost +{ + namespace range_detail + { + template + class SameTypeConcept + { + public: + BOOST_CONCEPT_USAGE(SameTypeConcept) + { + same_type(a,b); + } + private: + template void same_type(T,T) {} + T1 a; + T2 b; + }; + } +} + +#endif // include guard diff --git a/boost/boost/range/detail/remove_extent.hpp b/boost/boost/range/detail/remove_extent.hpp new file mode 100644 index 0000000000..68e4597245 --- /dev/null +++ b/boost/boost/range/detail/remove_extent.hpp @@ -0,0 +1,157 @@ +// Boost.Range library +// +// Copyright Jonathan Turkanis 2005. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + + +#ifndef BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP +#define BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP + +#include // MSVC, NO_INTRINSIC_WCHAR_T, put size_t in std. +#include +#include +#include +#include + +namespace boost +{ + namespace range_detail + { + + template< typename Case1 = mpl::true_, + typename Type1 = mpl::void_, + typename Case2 = mpl::true_, + typename Type2 = mpl::void_, + typename Case3 = mpl::true_, + typename Type3 = mpl::void_, + typename Case4 = mpl::true_, + typename Type4 = mpl::void_, + typename Case5 = mpl::true_, + typename Type5 = mpl::void_, + typename Case6 = mpl::true_, + typename Type6 = mpl::void_, + typename Case7 = mpl::true_, + typename Type7 = mpl::void_, + typename Case8 = mpl::true_, + typename Type8 = mpl::void_, + typename Case9 = mpl::true_, + typename Type9 = mpl::void_, + typename Case10 = mpl::true_, + typename Type10 = mpl::void_, + typename Case11 = mpl::true_, + typename Type11 = mpl::void_, + typename Case12 = mpl::true_, + typename Type12 = mpl::void_, + typename Case13 = mpl::true_, + typename Type13 = mpl::void_, + typename Case14 = mpl::true_, + typename Type14 = mpl::void_, + typename Case15 = mpl::true_, + typename Type15 = mpl::void_, + typename Case16 = mpl::true_, + typename Type16 = mpl::void_, + typename Case17 = mpl::true_, + typename Type17 = mpl::void_, + typename Case18 = mpl::true_, + typename Type18 = mpl::void_, + typename Case19 = mpl::true_, + typename Type19 = mpl::void_, + typename Case20 = mpl::true_, + typename Type20 = mpl::void_> + struct select { + typedef typename + mpl::eval_if< + Case1, mpl::identity, mpl::eval_if< + Case2, mpl::identity, mpl::eval_if< + Case3, mpl::identity, mpl::eval_if< + Case4, mpl::identity, mpl::eval_if< + Case5, mpl::identity, mpl::eval_if< + Case6, mpl::identity, mpl::eval_if< + Case7, mpl::identity, mpl::eval_if< + Case8, mpl::identity, mpl::eval_if< + Case9, mpl::identity, mpl::if_< + Case10, Type10, mpl::void_ > > > > > > > > > + >::type result1; + typedef typename + mpl::eval_if< + Case11, mpl::identity, mpl::eval_if< + Case12, mpl::identity, mpl::eval_if< + Case13, mpl::identity, mpl::eval_if< + Case14, mpl::identity, mpl::eval_if< + Case15, mpl::identity, mpl::eval_if< + Case16, mpl::identity, mpl::eval_if< + Case17, mpl::identity, mpl::eval_if< + Case18, mpl::identity, mpl::eval_if< + Case19, mpl::identity, mpl::if_< + Case20, Type20, mpl::void_ > > > > > > > > > + > result2; + typedef typename + mpl::eval_if< + is_same, + result2, + mpl::identity + >::type type; + }; + + template + struct remove_extent { + static T* ar; + BOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0])); + + typedef typename + select< + is_same, bool, + is_same, char, + is_same, signed char, + is_same, unsigned char, + #ifndef BOOST_NO_INTRINSIC_WCHAR_T + is_same, wchar_t, + #endif + is_same, short, + is_same, unsigned short, + is_same, int, + is_same, unsigned int, + is_same, long, + is_same, unsigned long, + is_same, float, + is_same, double, + is_same, long double + >::type result1; + typedef typename + select< + is_same, const bool, + is_same, const char, + is_same, const signed char, + is_same, const unsigned char, + #ifndef BOOST_NO_INTRINSIC_WCHAR_T + is_same, const wchar_t, + #endif + is_same, const short, + is_same, const unsigned short, + is_same, const int, + is_same, const unsigned int, + is_same, const long, + is_same, const unsigned long, + is_same, const float, + is_same, const double, + is_same, const long double + > result2; + typedef typename + mpl::eval_if< + is_same, + result2, + mpl::identity + >::type type; + }; + + } // namespace 'range_detail' + +} // namespace 'boost' + + +#endif diff --git a/boost/boost/range/detail/safe_bool.hpp b/boost/boost/range/detail/safe_bool.hpp new file mode 100644 index 0000000000..182e510484 --- /dev/null +++ b/boost/boost/range/detail/safe_bool.hpp @@ -0,0 +1,72 @@ +// This header intentionally has no include guards. +// +// Copyright (c) 2010 Neil Groves +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// This code utilises the experience gained during the evolution of +// +#ifndef BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP +#define BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP + +#include +#include + +namespace boost +{ + namespace range_detail + { + +template +class safe_bool +{ +public: + typedef safe_bool this_type; + +#if (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_) + typedef bool unspecified_bool_type; + static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) + { + return x; + } +#elif defined(_MANAGED) + static void unspecified_bool(this_type***) + { + } + typedef void(*unspecified_bool_type)(this_type***); + static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) + { + return x ? unspecified_bool : 0; + } +#elif \ + ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ + ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ + ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) + + typedef bool (this_type::*unspecified_bool_type)() const; + + static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) + { + return x ? &this_type::detail_safe_bool_member_fn : 0; + } +private: + bool detail_safe_bool_member_fn() const { return false; } +#else + typedef DataMemberPtr unspecified_bool_type; + static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p) + { + return x ? p : 0; + } +#endif +private: + safe_bool(); + safe_bool(const safe_bool&); + void operator=(const safe_bool&); + ~safe_bool(); +}; + + } // namespace range_detail +} // namespace boost + +#endif // include guard diff --git a/boost/boost/range/detail/sfinae.hpp b/boost/boost/range/detail/sfinae.hpp new file mode 100644 index 0000000000..5b2c61e71e --- /dev/null +++ b/boost/boost/range/detail/sfinae.hpp @@ -0,0 +1,77 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_SFINAE_HPP +#define BOOST_RANGE_DETAIL_SFINAE_HPP + +#include +#include +#include +#include + + +namespace boost +{ + namespace range_detail + { + using type_traits::yes_type; + using type_traits::no_type; + + ////////////////////////////////////////////////////////////////////// + // string + ////////////////////////////////////////////////////////////////////// + + yes_type is_string_impl( const char* const ); + yes_type is_string_impl( const wchar_t* const ); + no_type is_string_impl( ... ); + + template< std::size_t sz > + yes_type is_char_array_impl( char BOOST_RANGE_ARRAY_REF()[sz] ); + template< std::size_t sz > + yes_type is_char_array_impl( const char BOOST_RANGE_ARRAY_REF()[sz] ); + no_type is_char_array_impl( ... ); + + template< std::size_t sz > + yes_type is_wchar_t_array_impl( wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); + template< std::size_t sz > + yes_type is_wchar_t_array_impl( const wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); + no_type is_wchar_t_array_impl( ... ); + + yes_type is_char_ptr_impl( char* const ); + no_type is_char_ptr_impl( ... ); + + yes_type is_const_char_ptr_impl( const char* const ); + no_type is_const_char_ptr_impl( ... ); + + yes_type is_wchar_t_ptr_impl( wchar_t* const ); + no_type is_wchar_t_ptr_impl( ... ); + + yes_type is_const_wchar_t_ptr_impl( const wchar_t* const ); + no_type is_const_wchar_t_ptr_impl( ... ); + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template< typename Iterator > + yes_type is_pair_impl( const std::pair* ); + no_type is_pair_impl( ... ); + + ////////////////////////////////////////////////////////////////////// + // tags + ////////////////////////////////////////////////////////////////////// + + struct char_or_wchar_t_array_tag {}; + + } // namespace 'range_detail' + +} // namespace 'boost' + +#endif diff --git a/boost/boost/range/detail/size_type.hpp b/boost/boost/range/detail/size_type.hpp new file mode 100644 index 0000000000..78a60a48e9 --- /dev/null +++ b/boost/boost/range/detail/size_type.hpp @@ -0,0 +1,55 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_SIZE_TYPE_HPP +#define BOOST_RANGE_DETAIL_SIZE_TYPE_HPP + +#include + +////////////////////////////////////////////////////////////////////////////// +// missing partial specialization workaround. +////////////////////////////////////////////////////////////////////////////// + +namespace boost +{ + namespace range_detail + { + template< typename T > + struct range_size_type_ + { + template< typename C > + struct pts + { + typedef std::size_t type; + }; + }; + + template<> + struct range_size_type_ + { + template< typename C > + struct pts + { + typedef BOOST_RANGE_DEDUCED_TYPENAME C::size_type type; + }; + }; + } + + template< typename C > + class range_size + { + typedef typename range_detail::range::type c_type; + public: + typedef typename range_detail::range_size_type_::BOOST_NESTED_TEMPLATE pts::type type; + }; +} + +#endif + diff --git a/boost/boost/range/detail/vc6/end.hpp b/boost/boost/range/detail/vc6/end.hpp new file mode 100644 index 0000000000..4f76af5d6b --- /dev/null +++ b/boost/boost/range/detail/vc6/end.hpp @@ -0,0 +1,170 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DETAIL_VC6_END_HPP +#define BOOST_RANGE_DETAIL_VC6_END_HPP + +#include +#include +#include +#include +#include + +namespace boost +{ + namespace range_detail + { + template< typename T > + struct range_end; + + ////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename C > + struct inner { + static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator::type + fun( C& c ) + { + return c.end(); + }; + }; + }; + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename P > + struct inner { + static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator

::type + fun( const P& p ) + { + return p.second; + } + }; + }; + + ////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename T > + struct inner { + static BOOST_DEDUCED_TYPENAME remove_extent::type* + fun(T& t) + { + return t + remove_extent::size; + } + }; + }; + + + template<> + struct range_end + { + template< typename T > + struct inner { + static BOOST_DEDUCED_TYPENAME remove_extent::type* + fun(T& t) + { + return t + remove_extent::size; + } + }; + }; + + template<> + struct range_end + { + template< typename T > + struct inner { + static BOOST_DEDUCED_TYPENAME remove_extent::type* + fun(T& t) + { + return t + remove_extent::size; + } + }; + }; + + ////////////////////////////////////////////////////////////////////// + // string + ////////////////////////////////////////////////////////////////////// + + template<> + struct range_end + { + template< typename T > + struct inner { + static char* fun( char* s ) + { + return boost::range_detail::str_end( s ); + } + }; + }; + + template<> + struct range_end + { + template< typename T > + struct inner { + static const char* fun( const char* s ) + { + return boost::range_detail::str_end( s ); + } + }; + }; + + template<> + struct range_end + { + template< typename T > + struct inner { + static wchar_t* fun( wchar_t* s ) + { + return boost::range_detail::str_end( s ); + } + }; + }; + + + template<> + struct range_end + { + template< typename T > + struct inner { + static const wchar_t* fun( const wchar_t* s ) + { + return boost::range_detail::str_end( s ); + } + }; + }; + + } // namespace 'range_detail' + + template< typename C > + inline BOOST_DEDUCED_TYPENAME range_result_iterator::type + end( C& c ) + { + return range_detail::range_end::type>::inner::fun( c ); + } + +} // namespace 'boost' + + +#endif diff --git a/boost/boost/range/difference_type.hpp b/boost/boost/range/difference_type.hpp new file mode 100644 index 0000000000..164288fee4 --- /dev/null +++ b/boost/boost/range/difference_type.hpp @@ -0,0 +1,29 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DIFFERENCE_TYPE_HPP +#define BOOST_RANGE_DIFFERENCE_TYPE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include + +namespace boost +{ + template< class T > + struct range_difference : iterator_difference< typename range_iterator::type > + { }; +} + +#endif diff --git a/boost/boost/range/distance.hpp b/boost/boost/range/distance.hpp new file mode 100644 index 0000000000..42a106de03 --- /dev/null +++ b/boost/boost/range/distance.hpp @@ -0,0 +1,34 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2006. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_DISTANCE_HPP +#define BOOST_RANGE_DISTANCE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include + +namespace boost +{ + + template< class T > + inline BOOST_DEDUCED_TYPENAME range_difference::type + distance( const T& r ) + { + return std::distance( boost::begin( r ), boost::end( r ) ); + } + +} // namespace 'boost' + +#endif diff --git a/boost/boost/range/empty.hpp b/boost/boost/range/empty.hpp new file mode 100644 index 0000000000..36e58d7ddf --- /dev/null +++ b/boost/boost/range/empty.hpp @@ -0,0 +1,34 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_EMPTY_HPP +#define BOOST_RANGE_EMPTY_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include + +namespace boost +{ + + template< class T > + inline bool empty( const T& r ) + { + return boost::begin( r ) == boost::end( r ); + } + +} // namespace 'boost' + + +#endif diff --git a/boost/boost/range/end.hpp b/boost/boost/range/end.hpp new file mode 100644 index 0000000000..d5e6526fde --- /dev/null +++ b/boost/boost/range/end.hpp @@ -0,0 +1,136 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_END_HPP +#define BOOST_RANGE_END_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +#include +#else + +#include +#include +#include + +namespace boost +{ + +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ +namespace range_detail +{ +#endif + + ////////////////////////////////////////////////////////////////////// + // primary template + ////////////////////////////////////////////////////////////////////// + template< typename C > + inline BOOST_DEDUCED_TYPENAME range_iterator::type + range_end( C& c ) + { + // + // If you get a compile-error here, it is most likely because + // you have not implemented range_begin() properly in + // the namespace of C + // + return c.end(); + } + + ////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////// + + template< typename Iterator > + inline Iterator range_end( const std::pair& p ) + { + return p.second; + } + + template< typename Iterator > + inline Iterator range_end( std::pair& p ) + { + return p.second; + } + + ////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////// + + template< typename T, std::size_t sz > + inline const T* range_end( const T (&a)[sz] ) + { + return range_detail::array_end( a ); + } + + template< typename T, std::size_t sz > + inline T* range_end( T (&a)[sz] ) + { + return range_detail::array_end( a ); + } + +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ +} // namespace 'range_detail' +#endif + +namespace range_adl_barrier +{ + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_iterator::type end( T& r ) +{ +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_end( r ); +} + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_iterator::type end( const T& r ) +{ +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_end( r ); +} + + } // namespace range_adl_barrier +} // namespace 'boost' + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +namespace boost +{ + namespace range_adl_barrier + { + template< class T > + inline BOOST_DEDUCED_TYPENAME range_iterator::type + const_end( const T& r ) + { + return boost::range_adl_barrier::end( r ); + } + } // namespace range_adl_barrier + using namespace range_adl_barrier; +} // namespace boost + +#endif + diff --git a/boost/boost/range/functions.hpp b/boost/boost/range/functions.hpp new file mode 100644 index 0000000000..b8b8608b86 --- /dev/null +++ b/boost/boost/range/functions.hpp @@ -0,0 +1,27 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2006. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_FUNCTIONS_HPP +#define BOOST_RANGE_FUNCTIONS_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include + +#endif + diff --git a/boost/boost/range/iterator.hpp b/boost/boost/range/iterator.hpp new file mode 100644 index 0000000000..ec73ddc233 --- /dev/null +++ b/boost/boost/range/iterator.hpp @@ -0,0 +1,72 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_ITERATOR_HPP +#define BOOST_RANGE_ITERATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include + +namespace boost +{ + +#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) + + namespace range_detail_vc7_1 + { + template< typename C, typename Sig = void(C) > + struct range_iterator + { + typedef BOOST_RANGE_DEDUCED_TYPENAME + mpl::eval_if_c< is_const::value, + range_const_iterator< typename remove_const::type >, + range_mutable_iterator >::type type; + }; + + template< typename C, typename T > + struct range_iterator< C, void(T[]) > + { + typedef T* type; + }; + } + +#endif + + template< typename C > + struct range_iterator + { +#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) + + typedef BOOST_RANGE_DEDUCED_TYPENAME + range_detail_vc7_1::range_iterator::type type; + +#else + + typedef BOOST_RANGE_DEDUCED_TYPENAME + mpl::eval_if_c< is_const::value, + range_const_iterator< typename remove_const::type >, + range_mutable_iterator >::type type; + +#endif + }; + +} // namespace boost + +//#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif diff --git a/boost/boost/range/iterator_range_core.hpp b/boost/boost/range/iterator_range_core.hpp new file mode 100644 index 0000000000..60c7670ef9 --- /dev/null +++ b/boost/boost/range/iterator_range_core.hpp @@ -0,0 +1,650 @@ +// Boost.Range library +// +// Copyright Neil Groves & Thorsten Ottosen & Pavol Droba 2003-2004. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// +#ifndef BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED +#define BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED + +#include // Define __STL_CONFIG_H, if appropriate. +#include + +#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) + #pragma warning( push ) + #pragma warning( disable : 4996 ) +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*! \file + Defines the \c iterator_class and related functions. + \c iterator_range is a simple wrapper of iterator pair idiom. It provides + a rich subset of Container interface. +*/ + + +namespace boost +{ + namespace iterator_range_detail + { + // + // The functions adl_begin and adl_end are implemented in a separate + // class for gcc-2.9x + // + template + struct iterator_range_impl { + template< class ForwardRange > + static IteratorT adl_begin( ForwardRange& r ) + { + return static_cast( boost::begin( r ) ); + } + + template< class ForwardRange > + static IteratorT adl_end( ForwardRange& r ) + { + return static_cast( boost::end( r ) ); + } + }; + + template< class Left, class Right > + inline bool less_than( const Left& l, const Right& r ) + { + return std::lexicographical_compare( boost::begin(l), + boost::end(l), + boost::begin(r), + boost::end(r) ); + } + + template< class Left, class Right > + inline bool greater_than( const Left& l, const Right& r ) + { + return less_than(r,l); + } + + template< class Left, class Right > + inline bool less_or_equal_than( const Left& l, const Right& r ) + { + return !iterator_range_detail::less_than(r,l); + } + + template< class Left, class Right > + inline bool greater_or_equal_than( const Left& l, const Right& r ) + { + return !iterator_range_detail::less_than(l,r); + } + + // This version is maintained since it is used in other boost libraries + // such as Boost.Assign + template< class Left, class Right > + inline bool equal(const Left& l, const Right& r) + { + return boost::equal(l, r); + } + + struct range_tag { }; + struct const_range_tag { }; + } + +// iterator range template class -----------------------------------------// + + //! iterator_range class + /*! + An \c iterator_range delimits a range in a sequence by beginning and ending iterators. + An iterator_range can be passed to an algorithm which requires a sequence as an input. + For example, the \c toupper() function may be used most frequently on strings, + but can also be used on iterator_ranges: + + \code + boost::tolower( find( s, "UPPERCASE STRING" ) ); + \endcode + + Many algorithms working with sequences take a pair of iterators, + delimiting a working range, as an arguments. The \c iterator_range class is an + encapsulation of a range identified by a pair of iterators. + It provides a collection interface, + so it is possible to pass an instance to an algorithm requiring a collection as an input. + */ + template + class iterator_range + { + typedef range_detail::safe_bool< IteratorT iterator_range::* > safe_bool_t; + protected: // Used by sub_range + //! implementation class + typedef iterator_range_detail::iterator_range_impl impl; + public: + //! this type + typedef iterator_range type; + typedef BOOST_DEDUCED_TYPENAME safe_bool_t::unspecified_bool_type unspecified_bool_type; + //BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type); + + //! Encapsulated value type + typedef BOOST_DEDUCED_TYPENAME + iterator_value::type value_type; + + //! Difference type + typedef BOOST_DEDUCED_TYPENAME + iterator_difference::type difference_type; + + //! Size type + typedef std::size_t size_type; // note: must be unsigned + + //! This type + typedef iterator_range this_type; + + //! Reference type + // + // Needed because value-type is the same for + // const and non-const iterators + // + typedef BOOST_DEDUCED_TYPENAME + iterator_reference::type reference; + + //! const_iterator type + /*! + There is no distinction between const_iterator and iterator. + These typedefs are provides to fulfill container interface + */ + typedef IteratorT const_iterator; + //! iterator type + typedef IteratorT iterator; + + private: // for return value of operator()() + typedef BOOST_DEDUCED_TYPENAME + boost::mpl::if_< boost::is_abstract, + reference, value_type >::type abstract_value_type; + + public: + iterator_range() : m_Begin( iterator() ), m_End( iterator() ) + { } + + //! Constructor from a pair of iterators + template< class Iterator > + iterator_range( Iterator Begin, Iterator End ) : + m_Begin(Begin), m_End(End) + {} + + //! Constructor from a Range + template< class Range > + iterator_range( const Range& r ) : + m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) + {} + + //! Constructor from a Range + template< class Range > + iterator_range( Range& r ) : + m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) + {} + + //! Constructor from a Range + template< class Range > + iterator_range( const Range& r, iterator_range_detail::const_range_tag ) : + m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) + {} + + //! Constructor from a Range + template< class Range > + iterator_range( Range& r, iterator_range_detail::range_tag ) : + m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) + {} + + #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + this_type& operator=( const this_type& r ) + { + m_Begin = r.begin(); + m_End = r.end(); + return *this; + } + #endif + + template< class Iterator > + iterator_range& operator=( const iterator_range& r ) + { + m_Begin = r.begin(); + m_End = r.end(); + return *this; + } + + template< class ForwardRange > + iterator_range& operator=( ForwardRange& r ) + { + m_Begin = impl::adl_begin( r ); + m_End = impl::adl_end( r ); + return *this; + } + + template< class ForwardRange > + iterator_range& operator=( const ForwardRange& r ) + { + m_Begin = impl::adl_begin( r ); + m_End = impl::adl_end( r ); + return *this; + } + + IteratorT begin() const + { + return m_Begin; + } + + IteratorT end() const + { + return m_End; + } + + difference_type size() const + { + return m_End - m_Begin; + } + + bool empty() const + { + return m_Begin == m_End; + } + + operator unspecified_bool_type() const + { + return safe_bool_t::to_unspecified_bool(m_Begin != m_End, &iterator_range::m_Begin); + } + + bool operator!() const + { + return empty(); + } + + bool equal( const iterator_range& r ) const + { + return m_Begin == r.m_Begin && m_End == r.m_End; + } + + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + + bool operator==( const iterator_range& r ) const + { + return boost::equal( *this, r ); + } + + bool operator!=( const iterator_range& r ) const + { + return !operator==(r); + } + + bool operator<( const iterator_range& r ) const + { + return iterator_range_detail::less_than( *this, r ); + } + + bool operator>( const iterator_range& r ) const + { + return iterator_range_detail::greater_than( *this, r ); + } + + bool operator<=( const iterator_range& r ) const + { + return iterator_range_detail::less_or_equal_than( *this, r ); + } + + bool operator>=( const iterator_range& r ) const + { + return iterator_range_detail::greater_or_equal_than( *this, r ); + } + +#endif + + public: // convenience + reference front() const + { + BOOST_ASSERT( !empty() ); + return *m_Begin; + } + + reference back() const + { + BOOST_ASSERT( !empty() ); + IteratorT last( m_End ); + return *--last; + } + + // pop_front() - added to model the SinglePassRangePrimitiveConcept + void pop_front() + { + BOOST_ASSERT( !empty() ); + ++m_Begin; + } + + // pop_back() - added to model the BidirectionalRangePrimitiveConcept + void pop_back() + { + BOOST_ASSERT( !empty() ); + --m_End; + } + + reference operator[]( difference_type at ) const + { + BOOST_ASSERT( at >= 0 && at < size() ); + return m_Begin[at]; + } + + // + // When storing transform iterators, operator[]() + // fails because it returns by reference. Therefore + // operator()() is provided for these cases. + // + abstract_value_type operator()( difference_type at ) const + { + BOOST_ASSERT( at >= 0 && at < size() ); + return m_Begin[at]; + } + + iterator_range& advance_begin( difference_type n ) + { + std::advance( m_Begin, n ); + return *this; + } + + iterator_range& advance_end( difference_type n ) + { + std::advance( m_End, n ); + return *this; + } + + private: + // begin and end iterators + IteratorT m_Begin; + IteratorT m_End; + + protected: + // + // Allow subclasses an easy way to access the + // base type + // + typedef iterator_range iterator_range_; + }; + +// iterator range free-standing operators ---------------------------// + + ///////////////////////////////////////////////////////////////////// + // comparison operators + ///////////////////////////////////////////////////////////////////// + + template< class IteratorT, class ForwardRange > + inline bool operator==( const ForwardRange& l, + const iterator_range& r ) + { + return boost::equal( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator!=( const ForwardRange& l, + const iterator_range& r ) + { + return !boost::equal( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator<( const ForwardRange& l, + const iterator_range& r ) + { + return iterator_range_detail::less_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator<=( const ForwardRange& l, + const iterator_range& r ) + { + return iterator_range_detail::less_or_equal_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator>( const ForwardRange& l, + const iterator_range& r ) + { + return iterator_range_detail::greater_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator>=( const ForwardRange& l, + const iterator_range& r ) + { + return iterator_range_detail::greater_or_equal_than( l, r ); + } + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +#else + template< class Iterator1T, class Iterator2T > + inline bool operator==( const iterator_range& l, + const iterator_range& r ) + { + return boost::equal( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator==( const iterator_range& l, + const ForwardRange& r ) + { + return boost::equal( l, r ); + } + + + template< class Iterator1T, class Iterator2T > + inline bool operator!=( const iterator_range& l, + const iterator_range& r ) + { + return !boost::equal( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator!=( const iterator_range& l, + const ForwardRange& r ) + { + return !boost::equal( l, r ); + } + + + template< class Iterator1T, class Iterator2T > + inline bool operator<( const iterator_range& l, + const iterator_range& r ) + { + return iterator_range_detail::less_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator<( const iterator_range& l, + const ForwardRange& r ) + { + return iterator_range_detail::less_than( l, r ); + } + + template< class Iterator1T, class Iterator2T > + inline bool operator<=( const iterator_range& l, + const iterator_range& r ) + { + return iterator_range_detail::less_or_equal_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator<=( const iterator_range& l, + const ForwardRange& r ) + { + return iterator_range_detail::less_or_equal_than( l, r ); + } + + template< class Iterator1T, class Iterator2T > + inline bool operator>( const iterator_range& l, + const iterator_range& r ) + { + return iterator_range_detail::greater_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator>( const iterator_range& l, + const ForwardRange& r ) + { + return iterator_range_detail::greater_than( l, r ); + } + + template< class Iterator1T, class Iterator2T > + inline bool operator>=( const iterator_range& l, + const iterator_range& r ) + { + return iterator_range_detail::greater_or_equal_than( l, r ); + } + + template< class IteratorT, class ForwardRange > + inline bool operator>=( const iterator_range& l, + const ForwardRange& r ) + { + return iterator_range_detail::greater_or_equal_than( l, r ); + } + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +// iterator range utilities -----------------------------------------// + + //! iterator_range construct helper + /*! + Construct an \c iterator_range from a pair of iterators + + \param Begin A begin iterator + \param End An end iterator + \return iterator_range object + */ + template< typename IteratorT > + inline iterator_range< IteratorT > + make_iterator_range( IteratorT Begin, IteratorT End ) + { + return iterator_range( Begin, End ); + } + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + + template< typename Range > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( Range& r ) + { + return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + ( boost::begin( r ), boost::end( r ) ); + } + +#else + //! iterator_range construct helper + /*! + Construct an \c iterator_range from a \c Range containing the begin + and end iterators. + */ + template< class ForwardRange > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( ForwardRange& r ) + { + return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + ( r, iterator_range_detail::range_tag() ); + } + + template< class ForwardRange > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( const ForwardRange& r ) + { + return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + ( r, iterator_range_detail::const_range_tag() ); + } + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + + namespace iterator_range_detail + { + template< class Range > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_range_impl( Range& r, + BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, + BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) + { + // + // Not worth the effort + // + //if( advance_begin == 0 && advance_end == 0 ) + // return make_iterator_range( r ); + // + + BOOST_DEDUCED_TYPENAME range_iterator::type + new_begin = boost::begin( r ), + new_end = boost::end( r ); + std::advance( new_begin, advance_begin ); + std::advance( new_end, advance_end ); + return make_iterator_range( new_begin, new_end ); + } + } + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + + template< class Range > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( Range& r, + BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, + BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) + { + //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); + return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); + } + +#else + + template< class Range > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( Range& r, + BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, + BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) + { + //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); + return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); + } + + template< class Range > + inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > + make_iterator_range( const Range& r, + BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, + BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) + { + //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); + return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); + } + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + + //! copy a range into a sequence + /*! + Construct a new sequence of the specified type from the elements + in the given range + + \param Range An input range + \return New sequence + */ + template< typename SeqT, typename Range > + inline SeqT copy_range( const Range& r ) + { + return SeqT( boost::begin( r ), boost::end( r ) ); + } + +} // namespace 'boost' + +#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) + #pragma warning( pop ) +#endif + +#endif + diff --git a/boost/boost/range/mutable_iterator.hpp b/boost/boost/range/mutable_iterator.hpp new file mode 100644 index 0000000000..7beca66a29 --- /dev/null +++ b/boost/boost/range/mutable_iterator.hpp @@ -0,0 +1,67 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP +#define BOOST_RANGE_MUTABLE_ITERATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#include +#else + +#include +#include +#include +#include + +namespace boost +{ + ////////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////////// + + namespace range_detail { + BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator ) + } + + template< typename C > + struct range_mutable_iterator : range_detail::extract_iterator + {}; + + ////////////////////////////////////////////////////////////////////////// + // pair + ////////////////////////////////////////////////////////////////////////// + + template< typename Iterator > + struct range_mutable_iterator< std::pair > + { + typedef Iterator type; + }; + + ////////////////////////////////////////////////////////////////////////// + // array + ////////////////////////////////////////////////////////////////////////// + + template< typename T, std::size_t sz > + struct range_mutable_iterator< T[sz] > + { + typedef T* type; + }; + +} // namespace boost + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif diff --git a/boost/boost/range/rbegin.hpp b/boost/boost/range/rbegin.hpp new file mode 100644 index 0000000000..78e5f61ab7 --- /dev/null +++ b/boost/boost/range/rbegin.hpp @@ -0,0 +1,65 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_RBEGIN_HPP +#define BOOST_RANGE_RBEGIN_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include + +namespace boost +{ + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rbegin( C& c ) +{ + return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::end( c ) ); +} + +#else + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rbegin( C& c ) +{ + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( boost::end( c ) ); +} + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rbegin( const C& c ) +{ + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( boost::end( c ) ); +} + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +const_rbegin( const T& r ) +{ + return boost::rbegin( r ); +} + +} // namespace 'boost' + +#endif + diff --git a/boost/boost/range/rend.hpp b/boost/boost/range/rend.hpp new file mode 100644 index 0000000000..fd79aa22c3 --- /dev/null +++ b/boost/boost/range/rend.hpp @@ -0,0 +1,65 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_REND_HPP +#define BOOST_RANGE_REND_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include + +namespace boost +{ + +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rend( C& c ) +{ + return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::begin( c ) ); +} + +#else + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rend( C& c ) +{ + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( boost::begin( c ) ); +} + +template< class C > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +rend( const C& c ) +{ + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( boost::begin( c ) ); +} + +#endif + +template< class T > +inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type +const_rend( const T& r ) +{ + return boost::rend( r ); +} + +} // namespace 'boost' + +#endif + diff --git a/boost/boost/range/result_iterator.hpp b/boost/boost/range/result_iterator.hpp new file mode 100644 index 0000000000..ba09c5fed4 --- /dev/null +++ b/boost/boost/range/result_iterator.hpp @@ -0,0 +1,33 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_RESULT_ITERATOR_HPP +#define BOOST_RANGE_RESULT_ITERATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +#include + +namespace boost +{ + // + // This interface is deprecated, use range_iterator + // + + template< typename C > + struct range_result_iterator : range_iterator + { }; + +} // namespace boost + + +#endif diff --git a/boost/boost/range/reverse_iterator.hpp b/boost/boost/range/reverse_iterator.hpp new file mode 100644 index 0000000000..f8e922175a --- /dev/null +++ b/boost/boost/range/reverse_iterator.hpp @@ -0,0 +1,40 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_REVERSE_ITERATOR_HPP +#define BOOST_RANGE_REVERSE_ITERATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include + + +namespace boost +{ + ////////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////////// + + template< typename C > + struct range_reverse_iterator + { + typedef reverse_iterator< + BOOST_DEDUCED_TYPENAME range_iterator::type > type; + }; + + +} // namespace boost + + +#endif diff --git a/boost/boost/range/size.hpp b/boost/boost/range/size.hpp new file mode 100644 index 0000000000..6ae74d1176 --- /dev/null +++ b/boost/boost/range/size.hpp @@ -0,0 +1,52 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_SIZE_HPP +#define BOOST_RANGE_SIZE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include +#include +#include +#include + +namespace boost +{ + namespace range_detail + { + template + inline BOOST_DEDUCED_TYPENAME range_size::type + range_calculate_size(const SinglePassRange& rng) + { + BOOST_ASSERT( (boost::end(rng) - boost::begin(rng)) >= 0 && + "reachability invariant broken!" ); + return boost::end(rng) - boost::begin(rng); + } + } + + template + inline BOOST_DEDUCED_TYPENAME range_size::type + size(const SinglePassRange& rng) + { +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_calculate_size(rng); + } + +} // namespace 'boost' + +#endif diff --git a/boost/boost/range/size_type.hpp b/boost/boost/range/size_type.hpp new file mode 100644 index 0000000000..c6fb54bb15 --- /dev/null +++ b/boost/boost/range/size_type.hpp @@ -0,0 +1,89 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_SIZE_TYPE_HPP +#define BOOST_RANGE_SIZE_TYPE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +#include +#include +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#include +#else + +#include +#include +#include +#include +#include + +namespace boost +{ + namespace detail + { + + ////////////////////////////////////////////////////////////////////////// + // default + ////////////////////////////////////////////////////////////////////////// + + template + class has_size_type + { + typedef char no_type; + struct yes_type { char dummy[2]; }; + + template + static yes_type test(BOOST_DEDUCED_TYPENAME C::size_type x); + + template + static no_type test(Arg x); + + public: + static const bool value = sizeof(test(0)) == sizeof(yes_type); + }; + + template + struct range_size + { + typedef BOOST_DEDUCED_TYPENAME make_unsigned< + BOOST_DEDUCED_TYPENAME range_difference::type + >::type type; + }; + + template + struct range_size< + C, + BOOST_DEDUCED_TYPENAME enable_if, void>::type + > + { + typedef BOOST_DEDUCED_TYPENAME C::size_type type; + }; + + } + + template< class T > + struct range_size : + detail::range_size + { }; + + template< class T > + struct range_size + : detail::range_size + { }; + +} // namespace boost + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + + +#endif diff --git a/boost/boost/range/value_type.hpp b/boost/boost/range/value_type.hpp new file mode 100644 index 0000000000..95c7580885 --- /dev/null +++ b/boost/boost/range/value_type.hpp @@ -0,0 +1,34 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen 2003-2004. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_VALUE_TYPE_HPP +#define BOOST_RANGE_VALUE_TYPE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include + +//#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +//#include +//#else + +#include + +namespace boost +{ + template< class T > + struct range_value : iterator_value< typename range_iterator::type > + { }; +} + +#endif diff --git a/boost/boost/regex/config.hpp b/boost/boost/regex/config.hpp index 6b7db45dc0..e8cec5b7fa 100644 --- a/boost/boost/regex/config.hpp +++ b/boost/boost/regex/config.hpp @@ -170,7 +170,10 @@ # define BOOST_REGEX_HAS_OTHER_WCHAR_T # ifdef BOOST_MSVC # pragma warning(push) -# pragma warning(disable : 4251 4231 4660) +# pragma warning(disable : 4251 4231) +# if BOOST_MSVC < 1600 +# pragma warning(disable : 4660) +# endif # endif # if defined(_DLL) && defined(BOOST_MSVC) && (BOOST_MSVC < 1600) # include diff --git a/boost/boost/regex/pending/object_cache.hpp b/boost/boost/regex/pending/object_cache.hpp index 05b6bfa24a..d47fbba9cd 100644 --- a/boost/boost/regex/pending/object_cache.hpp +++ b/boost/boost/regex/pending/object_cache.hpp @@ -151,7 +151,7 @@ boost::shared_ptr object_cache::do_get(const Key& k, --s; } else - --pos; + ++pos; } BOOST_ASSERT(s_data.index[k]->first.get() == result.get()); BOOST_ASSERT(&(s_data.index.find(k)->first) == s_data.cont.back().second); diff --git a/boost/boost/regex/pending/unicode_iterator.hpp b/boost/boost/regex/pending/unicode_iterator.hpp index e6399b50b3..3a7b68fbe7 100644 --- a/boost/boost/regex/pending/unicode_iterator.hpp +++ b/boost/boost/regex/pending/unicode_iterator.hpp @@ -520,9 +520,26 @@ public: } void increment() { + // We must not start with a continuation character: + if((static_cast(*m_position) & 0xC0) == 0x80) + invalid_sequence(); // skip high surrogate first if there is one: unsigned c = detail::utf8_byte_count(*m_position); - std::advance(m_position, c); + if(m_value == pending_read) + { + // Since we haven't read in a value, we need to validate the code points: + for(unsigned i = 0; i < c; ++i) + { + ++m_position; + // We must have a continuation byte: + if((i != c - 1) && ((static_cast(*m_position) & 0xC0) != 0x80)) + invalid_sequence(); + } + } + else + { + std::advance(m_position, c); + } m_value = pending_read; } void decrement() @@ -589,7 +606,7 @@ private: // we must not have a continuation character: if((m_value & 0xC0u) == 0x80u) invalid_sequence(); - // see how many extra byts we have: + // see how many extra bytes we have: unsigned extra = detail::utf8_trailing_byte_count(*m_position); // extract the extra bits, 6 from each extra byte: BaseIterator next(m_position); @@ -597,6 +614,9 @@ private: { ++next; m_value <<= 6; + // We must have a continuation byte: + if((static_cast(*next) & 0xC0) != 0x80) + invalid_sequence(); m_value += static_cast(*next) & 0x3Fu; } // we now need to remove a few of the leftmost bits, but how many depends diff --git a/boost/boost/regex/v4/basic_regex.hpp b/boost/boost/regex/v4/basic_regex.hpp index 1e71877ef4..0b63e3aa37 100644 --- a/boost/boost/regex/v4/basic_regex.hpp +++ b/boost/boost/regex/v4/basic_regex.hpp @@ -36,7 +36,10 @@ namespace boost{ #ifdef BOOST_MSVC #pragma warning(push) -#pragma warning(disable : 4251 4231 4660 4800) +#pragma warning(disable : 4251 4231 4800) +#if BOOST_MSVC < 1600 +#pragma warning(disable : 4660) +#endif #endif namespace re_detail{ @@ -243,11 +246,11 @@ public: // begin, end: const_iterator BOOST_REGEX_CALL begin()const { - return (!this->m_status ? 0 : this->m_expression); + return (this->m_status ? 0 : this->m_expression); } const_iterator BOOST_REGEX_CALL end()const { - return (!this->m_status ? 0 : this->m_expression + this->m_expression_len); + return (this->m_status ? 0 : this->m_expression + this->m_expression_len); } flag_type BOOST_REGEX_CALL flags()const { diff --git a/boost/boost/regex/v4/basic_regex_creator.hpp b/boost/boost/regex/v4/basic_regex_creator.hpp index c4b1c048d0..efb649cd79 100644 --- a/boost/boost/regex/v4/basic_regex_creator.hpp +++ b/boost/boost/regex/v4/basic_regex_creator.hpp @@ -66,7 +66,7 @@ class basic_char_set public: typedef digraph digraph_type; typedef typename traits::string_type string_type; - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; basic_char_set() { @@ -100,12 +100,12 @@ public: } m_empty = false; } - void add_class(mask_type m) + void add_class(m_type m) { m_classes |= m; m_empty = false; } - void add_negated_class(mask_type m) + void add_negated_class(m_type m) { m_negated_classes |= m; m_empty = false; @@ -162,11 +162,11 @@ public: { return m_equivalents.end(); } - mask_type classes()const + m_type classes()const { return m_classes; } - mask_type negated_classes()const + m_type negated_classes()const { return m_negated_classes; } @@ -179,8 +179,8 @@ private: std::vector m_ranges; // a list of end points of our ranges bool m_negate; // true if the set is to be negated bool m_has_digraphs; // true if we have digraphs present - mask_type m_classes; // character classes to match - mask_type m_negated_classes; // negated character classes to match + m_type m_classes; // character classes to match + m_type m_negated_classes; // negated character classes to match bool m_empty; // whether we've added anything yet std::vector m_equivalents; // a list of equivalence classes }; @@ -367,9 +367,9 @@ re_syntax_base* basic_regex_creator::append_set( { typedef typename traits::string_type string_type; typedef typename basic_char_set::list_iterator item_iterator; - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; - re_set_long* result = static_cast*>(append_state(syntax_element_long_set, sizeof(re_set_long))); + re_set_long* result = static_cast*>(append_state(syntax_element_long_set, sizeof(re_set_long))); // // fill in the basics: // @@ -513,28 +513,23 @@ re_syntax_base* basic_regex_creator::append_set( // // finally reset the address of our last state: // - m_last_state = result = static_cast*>(getaddress(offset)); + m_last_state = result = static_cast*>(getaddress(offset)); return result; } -namespace{ - template inline bool char_less(T t1, T t2) { return t1 < t2; } -template<> -inline bool char_less(char t1, char t2) +inline bool char_less(char t1, char t2) { return static_cast(t1) < static_cast(t2); } -template<> -inline bool char_less(signed char t1, signed char t2) +inline bool char_less(signed char t1, signed char t2) { return static_cast(t1) < static_cast(t2); } -} template re_syntax_base* basic_regex_creator::append_set( @@ -598,7 +593,7 @@ re_syntax_base* basic_regex_creator::append_set( } else { - if(char_less(c2, c1)) + if(char_less(c2, c1)) { // Oops error: return 0; @@ -610,8 +605,8 @@ re_syntax_base* basic_regex_creator::append_set( // // and now the classes: // - typedef typename traits::char_class_type mask_type; - mask_type m = char_set.classes(); + typedef typename traits::char_class_type m_type; + m_type m = char_set.classes(); if(flags() & regbase::icase) { // adjust m as needed: @@ -982,7 +977,7 @@ void basic_regex_creator::create_startmaps(re_syntax_base* state) template int basic_regex_creator::calculate_backstep(re_syntax_base* state) { - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; int result = 0; while(state) { @@ -1035,10 +1030,10 @@ int basic_regex_creator::calculate_backstep(re_syntax_base* state state = rep->alt.p; continue; } - else if((state->type == syntax_element_long_set_rep)) + else if(state->type == syntax_element_long_set_rep) { BOOST_ASSERT(rep->next.p->type == syntax_element_long_set); - if(static_cast*>(rep->next.p)->singleton == 0) + if(static_cast*>(rep->next.p)->singleton == 0) return -1; if(rep->max != rep->min) return -1; @@ -1049,7 +1044,7 @@ int basic_regex_creator::calculate_backstep(re_syntax_base* state } return -1; case syntax_element_long_set: - if(static_cast*>(state)->singleton == 0) + if(static_cast*>(state)->singleton == 0) return -1; result += 1; break; @@ -1113,9 +1108,9 @@ void basic_regex_creator::create_startmap(re_syntax_base* state, if(l_map) { l_map[0] |= mask_init; - l_map['\n'] |= mask; - l_map['\r'] |= mask; - l_map['\f'] |= mask; + l_map[static_cast('\n')] |= mask; + l_map[static_cast('\r')] |= mask; + l_map[static_cast('\f')] |= mask; l_map[0x85] |= mask; } // now figure out if we can match a NULL string at this point: @@ -1219,14 +1214,14 @@ void basic_regex_creator::create_startmap(re_syntax_base* state, case syntax_element_long_set: if(l_map) { - typedef typename traits::char_class_type mask_type; - if(static_cast*>(state)->singleton) + typedef typename traits::char_class_type m_type; + if(static_cast*>(state)->singleton) { l_map[0] |= mask_init; for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i) { charT c = static_cast(i); - if(&c != re_is_set_member(&c, &c + 1, static_cast*>(state), *m_pdata, l_icase)) + if(&c != re_is_set_member(&c, &c + 1, static_cast*>(state), *m_pdata, l_icase)) l_map[i] |= mask; } } @@ -1302,8 +1297,8 @@ void basic_regex_creator::create_startmap(re_syntax_base* state, if(l_map) { l_map[0] |= mask_init; - l_map['\n'] |= mask; - l_map['\r'] |= mask; + l_map[static_cast('\n')] |= mask; + l_map[static_cast('\r')] |= mask; } if(pnull) *pnull |= mask; @@ -1338,7 +1333,7 @@ void basic_regex_creator::create_startmap(re_syntax_base* state, re_syntax_base* p = m_pdata->m_first_state; while(p) { - if((p->type == syntax_element_recurse)) + if(p->type == syntax_element_recurse) { re_brace* p2 = static_cast(static_cast(p)->alt.p); if((p2->type == syntax_element_startmark) && (p2->index == static_cast(state)->index)) @@ -1469,7 +1464,7 @@ void basic_regex_creator::set_bad_repeat(re_syntax_base* pt) template syntax_element_type basic_regex_creator::get_repeat_type(re_syntax_base* state) { - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; if(state->type == syntax_element_rep) { // check to see if we are repeating a single state: @@ -1484,7 +1479,7 @@ syntax_element_type basic_regex_creator::get_repeat_type(re_synta case re_detail::syntax_element_set: return re_detail::syntax_element_short_set_rep; case re_detail::syntax_element_long_set: - if(static_cast*>(state->next.p)->singleton) + if(static_cast*>(state->next.p)->singleton) return re_detail::syntax_element_long_set_rep; break; default: diff --git a/boost/boost/regex/v4/basic_regex_parser.hpp b/boost/boost/regex/v4/basic_regex_parser.hpp index f524673d20..72dc4eeb4c 100644 --- a/boost/boost/regex/v4/basic_regex_parser.hpp +++ b/boost/boost/regex/v4/basic_regex_parser.hpp @@ -191,6 +191,7 @@ void basic_regex_parser::fail(regex_constants::error_type error_c this->m_pdata->m_status = error_code; m_position = m_end; // don't bother parsing anything else +#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS // // Augment error message with the regular expression text: // @@ -211,6 +212,7 @@ void basic_regex_parser::fail(regex_constants::error_type error_c } message += "'."; } +#endif #ifndef BOOST_NO_EXCEPTIONS if(0 == (this->flags() & regex_constants::no_except)) @@ -660,6 +662,11 @@ template bool basic_regex_parser::parse_extended_escape() { ++m_position; + if(m_position == m_end) + { + fail(regex_constants::error_escape, m_position - m_base, "Incomplete escape sequence found."); + return false; + } bool negate = false; // in case this is a character class escape: \w \d etc switch(this->m_traits.escape_syntax_type(*m_position)) { @@ -669,8 +676,8 @@ bool basic_regex_parser::parse_extended_escape() case regex_constants::escape_type_class: { escape_type_class_jump: - typedef typename traits::char_class_type mask_type; - mask_type m = this->m_traits.lookup_classname(m_position, m_position+1); + typedef typename traits::char_class_type m_type; + m_type m = this->m_traits.lookup_classname(m_position, m_position+1); if(m != 0) { basic_char_set char_set; @@ -1383,8 +1390,8 @@ bool basic_regex_parser::parse_inner_set(basic_char_setm_traits.lookup_classname(name_first, name_last); + typedef typename traits::char_class_type m_type; + m_type m = this->m_traits.lookup_classname(name_first, name_last); if(m == 0) { if(char_set.empty() && (name_last - name_first == 1)) @@ -2089,6 +2096,14 @@ insert_recursion: return false; } v = this->m_traits.toi(m_position, m_end, 10); + if(m_position == m_end) + { + // Rewind to start of (? sequence: + --m_position; + while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position; + fail(regex_constants::error_perl_extension, m_position - m_base); + return false; + } if(*m_position == charT('R')) { if(++m_position == m_end) @@ -2492,9 +2507,11 @@ option_group_jump: this->m_pdata->m_data.align(); re_jump* jmp = static_cast(this->getaddress(jump_offset)); jmp->alt.i = this->m_pdata->m_data.size() - this->getoffset(jmp); - if(this->m_last_state == jmp) + if((this->m_last_state == jmp) && (markid != -2)) { - // Oops... we didn't have anything inside the assertion: + // Oops... we didn't have anything inside the assertion. + // Note we don't get here for negated forward lookahead as (?!) + // does have some uses. // Rewind to start of (? sequence: --m_position; while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position; diff --git a/boost/boost/regex/v4/cpp_regex_traits.hpp b/boost/boost/regex/v4/cpp_regex_traits.hpp index bcae455a37..d60942f09b 100644 --- a/boost/boost/regex/v4/cpp_regex_traits.hpp +++ b/boost/boost/regex/v4/cpp_regex_traits.hpp @@ -20,6 +20,7 @@ #define BOOST_CPP_REGEX_TRAITS_HPP_INCLUDED #include +#include #ifndef BOOST_NO_STD_LOCALE @@ -107,12 +108,14 @@ template typename parser_buf::pos_type parser_buf::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) { + typedef typename boost::int_t::least cast_type; + if(which & ::std::ios_base::out) return pos_type(off_type(-1)); std::ptrdiff_t size = this->egptr() - this->eback(); std::ptrdiff_t pos = this->gptr() - this->eback(); charT* g = this->eback(); - switch(way) + switch(static_cast(way)) { case ::std::ios_base::beg: if((off < 0) || (off > size)) diff --git a/boost/boost/regex/v4/instances.hpp b/boost/boost/regex/v4/instances.hpp index c62d136fff..6807b2f06c 100644 --- a/boost/boost/regex/v4/instances.hpp +++ b/boost/boost/regex/v4/instances.hpp @@ -84,7 +84,10 @@ template class BOOST_REGEX_DECL ::boost::re_detail::perl_matcher; @@ -118,7 +121,7 @@ template class BOOST_REGEX_TEMPLATE_DECL ::boost::re_detail::perl_matcher< std:: #undef BOOST_REGEX_TEMPLATE_DECL -#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || !defined(BOOST_NO_EXTERN_TEMPLATE) +#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || !defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) # ifndef BOOST_REGEX_INSTANTIATE # ifdef __GNUC__ diff --git a/boost/boost/regex/v4/match_results.hpp b/boost/boost/regex/v4/match_results.hpp index ca9898f4c4..63e5117592 100644 --- a/boost/boost/regex/v4/match_results.hpp +++ b/boost/boost/regex/v4/match_results.hpp @@ -33,7 +33,10 @@ namespace boost{ #ifdef BOOST_MSVC #pragma warning(push) -#pragma warning(disable : 4251 4231 4660) +#pragma warning(disable : 4251 4231) +# if BOOST_MSVC < 1600 +# pragma warning(disable : 4660) +# endif #endif namespace re_detail{ diff --git a/boost/boost/regex/v4/perl_matcher.hpp b/boost/boost/regex/v4/perl_matcher.hpp index 52cc55cc68..ddaafbd7e4 100644 --- a/boost/boost/regex/v4/perl_matcher.hpp +++ b/boost/boost/regex/v4/perl_matcher.hpp @@ -344,7 +344,10 @@ struct recursion_info #ifdef BOOST_MSVC #pragma warning(push) -#pragma warning(disable : 4251 4231 4660) +#pragma warning(disable : 4251 4231) +# if BOOST_MSVC < 1600 +# pragma warning(disable : 4660) +# endif #endif template diff --git a/boost/boost/regex/v4/perl_matcher_non_recursive.hpp b/boost/boost/regex/v4/perl_matcher_non_recursive.hpp index 7ab678170b..f5eb3feb42 100644 --- a/boost/boost/regex/v4/perl_matcher_non_recursive.hpp +++ b/boost/boost/regex/v4/perl_matcher_non_recursive.hpp @@ -828,9 +828,9 @@ bool perl_matcher::match_long_set_repeat() #ifdef __BORLANDC__ #pragma option push -w-8008 -w-8066 -w-8004 #endif - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; const re_repeat* rep = static_cast(pstate); - const re_set_long* set = static_cast*>(pstate->next.p); + const re_set_long* set = static_cast*>(pstate->next.p); std::size_t count = 0; // // start by working out how much we can skip: @@ -1268,6 +1268,9 @@ bool perl_matcher::unwind_fast_dot_repeat(bool }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip)); } + // remember where we got to if this is a leading repeat: + if((rep->leading) && (count < rep->max)) + restart = position; if(position == last) { // can't repeat any more, remove the pushed state: @@ -1434,7 +1437,7 @@ bool perl_matcher::unwind_short_set_repeat(bool template bool perl_matcher::unwind_long_set_repeat(bool r) { - typedef typename traits::char_class_type mask_type; + typedef typename traits::char_class_type m_type; saved_single_repeat* pmp = static_cast*>(m_backup_state); // if we have a match, just discard this state: @@ -1447,7 +1450,7 @@ bool perl_matcher::unwind_long_set_repeat(bool const re_repeat* rep = pmp->rep; std::size_t count = pmp->count; pstate = rep->next.p; - const re_set_long* set = static_cast*>(pstate); + const re_set_long* set = static_cast*>(pstate); position = pmp->last_position; BOOST_ASSERT(rep->type == syntax_element_long_set_rep); diff --git a/boost/boost/regex/v4/regex_format.hpp b/boost/boost/regex/v4/regex_format.hpp index e05862fa60..3b1d19da2a 100644 --- a/boost/boost/regex/v4/regex_format.hpp +++ b/boost/boost/regex/v4/regex_format.hpp @@ -180,8 +180,14 @@ private: } inline int toi(ForwardIter& i, ForwardIter j, int base) { +#if defined(_MSC_VER) && defined(__INTEL_COMPILER) && ((__INTEL_COMPILER == 9999) || (__INTEL_COMPILER == 1210)) + // Workaround for Intel support issue #656654. + // See also https://svn.boost.org/trac/boost/ticket/6359 + return toi(i, j, base, mpl::false_()); +#else typedef typename boost::is_convertible::type tag_type; return toi(i, j, base, tag_type()); +#endif } const traits& m_traits; // the traits class for localised formatting operations diff --git a/boost/boost/regex/v4/regex_iterator.hpp b/boost/boost/regex/v4/regex_iterator.hpp index c2f2c49f2e..09e75c697d 100644 --- a/boost/boost/regex/v4/regex_iterator.hpp +++ b/boost/boost/regex/v4/regex_iterator.hpp @@ -68,7 +68,7 @@ public: // flags |= match_prev_avail; BidirectionalIterator next_start = what[0].second; match_flag_type f(flags); - if(!what.length()) + if(!what.length() || (f & regex_constants::match_posix)) f |= regex_constants::match_not_initial_null; //if(base != next_start) // f |= regex_constants::match_not_bob; diff --git a/boost/boost/signals/connection.hpp b/boost/boost/signals/connection.hpp index 48493aabf9..1ede6be7a1 100644 --- a/boost/boost/signals/connection.hpp +++ b/boost/boost/signals/connection.hpp @@ -132,7 +132,7 @@ namespace boost { connection release(); - inline void swap(scoped_connection&); + void swap(scoped_connection&); scoped_connection& operator=(const connection&); scoped_connection& operator=(const scoped_connection&); diff --git a/boost/boost/signals/detail/named_slot_map.hpp b/boost/boost/signals/detail/named_slot_map.hpp index 763013fde1..88625faea2 100644 --- a/boost/boost/signals/detail/named_slot_map.hpp +++ b/boost/boost/signals/detail/named_slot_map.hpp @@ -127,7 +127,7 @@ public: || slot_ == other.slot_)); } -#if BOOST_WORKAROUND(_MSC_VER, <= 1600) +#if BOOST_WORKAROUND(_MSC_VER, <= 1700) void decrement(); void advance(difference_type); #endif diff --git a/boost/boost/smart_ptr/allocate_shared_array.hpp b/boost/boost/smart_ptr/allocate_shared_array.hpp new file mode 100644 index 0000000000..3ee16552e3 --- /dev/null +++ b/boost/boost/smart_ptr/allocate_shared_array.hpp @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP +#define BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP + +#include +#include +#include +#include +#include +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) +#include +#endif + +namespace boost { + template + inline typename boost::detail::sp_if_array::type + allocate_shared(const A& allocator, std::size_t size) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2); + return boost::shared_ptr(s1, p1); + } +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline typename boost::detail::sp_if_array::type + allocate_shared(const A& allocator, std::size_t size, Args&&... args) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(args)...); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + allocate_shared(const A& allocator, Args&&... args) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::allocate_array_helper a1(allocator, &p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(args)...); + return boost::shared_ptr(s1, p1); + } +#endif +#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) + template + inline typename boost::detail::sp_if_size_array::type + allocate_shared(const A& allocator, const T& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + boost::detail::allocate_array_helper a1(allocator, &p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_array::type + allocate_shared(const A& allocator, std::size_t size, + const typename boost::detail::array_inner::type& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + M = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + std::size_t n1 = M * size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->template init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + allocate_shared(const A& allocator, + const typename boost::detail::array_inner::type& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + M = boost::detail::array_total::size, + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + boost::detail::allocate_array_helper a1(allocator, &p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->template init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + template + inline typename boost::detail::sp_if_array::type + allocate_shared(const A& allocator, + std::initializer_list::type> list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + std::size_t n1 = list.size() * boost::detail::array_total::size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list.begin()); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline typename boost::detail::sp_if_array::type + allocate_shared(const A& allocator, std::size_t size, + typename boost::detail::array_base::type&& value) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(value)); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + allocate_shared(const A& allocator, + typename boost::detail::array_base::type&& value) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::allocate_array_helper a1(allocator, &p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(value)); + return boost::shared_ptr(s1, p1); + } +#endif +#endif + template + inline typename boost::detail::sp_if_array::type + allocate_shared_noinit(const A& allocator, std::size_t size) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::allocate_array_helper a1(allocator, n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->noinit(p2); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + allocate_shared_noinit(const A& allocator) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::allocate_array_helper a1(allocator, &p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->noinit(p2); + return boost::shared_ptr(s1, p1); + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/allocate_array_helper.hpp b/boost/boost/smart_ptr/detail/allocate_array_helper.hpp new file mode 100644 index 0000000000..f7c64feb6c --- /dev/null +++ b/boost/boost/smart_ptr/detail/allocate_array_helper.hpp @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP +#define BOOST_SMART_PTR_DETAIL_ALLOCATE_ARRAY_HELPER_HPP + +#include + +namespace boost { + namespace detail { + template + class allocate_array_helper; + template + class allocate_array_helper { + template + friend class allocate_array_helper; + typedef typename A::template rebind ::other A2; + typedef typename A::template rebind::other A3; + public: + typedef typename A2::value_type value_type; + typedef typename A2::pointer pointer; + typedef typename A2::const_pointer const_pointer; + typedef typename A2::reference reference; + typedef typename A2::const_reference const_reference; + typedef typename A2::size_type size_type; + typedef typename A2::difference_type difference_type; + template + struct rebind { + typedef allocate_array_helper other; + }; + allocate_array_helper(const A& allocator, std::size_t size, T** data) + : allocator(allocator), + size(sizeof(T) * size), + data(data) { + } + template + allocate_array_helper(const allocate_array_helper& other) + : allocator(other.allocator), + size(other.size), + data(other.data) { + } + pointer address(reference value) const { + return allocator.address(value); + } + const_pointer address(const_reference value) const { + return allocator.address(value); + } + size_type max_size() const { + return allocator.max_size(); + } + pointer allocate(size_type count, const void* value = 0) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + char* p1 = A3(allocator).allocate(n1 + size, value); + char* p2 = p1 + n1; + while (std::size_t(p2) % a1 != 0) { + p2--; + } + *data = reinterpret_cast(p2); + return reinterpret_cast(p1); + } + void deallocate(pointer memory, size_type count) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + char* p1 = reinterpret_cast(memory); + A3(allocator).deallocate(p1, n1 + size); + } + void construct(pointer memory, const Y& value) { + allocator.construct(memory, value); + } + void destroy(pointer memory) { + allocator.destroy(memory); + } + template + bool operator==(const allocate_array_helper& other) const { + return allocator == other.allocator; + } + template + bool operator!=(const allocate_array_helper& other) const { + return !(*this == other); + } + private: + A2 allocator; + std::size_t size; + T** data; + }; + template + class allocate_array_helper { + template + friend class allocate_array_helper; + typedef typename A::template rebind ::other A2; + typedef typename A::template rebind::other A3; + public: + typedef typename A2::value_type value_type; + typedef typename A2::pointer pointer; + typedef typename A2::const_pointer const_pointer; + typedef typename A2::reference reference; + typedef typename A2::const_reference const_reference; + typedef typename A2::size_type size_type; + typedef typename A2::difference_type difference_type; + template + struct rebind { + typedef allocate_array_helper other; + }; + allocate_array_helper(const A& allocator, T** data) + : allocator(allocator), + data(data) { + } + template + allocate_array_helper(const allocate_array_helper& other) + : allocator(other.allocator), + data(other.data) { + } + pointer address(reference value) const { + return allocator.address(value); + } + const_pointer address(const_reference value) const { + return allocator.address(value); + } + size_type max_size() const { + return allocator.max_size(); + } + pointer allocate(size_type count, const void* value = 0) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + char* p1 = A3(allocator).allocate(n1 + N1, value); + char* p2 = p1 + n1; + while (std::size_t(p2) % a1 != 0) { + p2--; + } + *data = reinterpret_cast(p2); + return reinterpret_cast(p1); + } + void deallocate(pointer memory, size_type count) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + char* p1 = reinterpret_cast(memory); + A3(allocator).deallocate(p1, n1 + N1); + } + void construct(pointer memory, const Y& value) { + allocator.construct(memory, value); + } + void destroy(pointer memory) { + allocator.destroy(memory); + } + template + bool operator==(const allocate_array_helper& other) const { + return allocator == other.allocator; + } + template + bool operator!=(const allocate_array_helper& other) const { + return !(*this == other); + } + private: + enum { + N1 = N * sizeof(T) + }; + A2 allocator; + T** data; + }; + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/array_deleter.hpp b/boost/boost/smart_ptr/detail/array_deleter.hpp new file mode 100644 index 0000000000..11f23fa50e --- /dev/null +++ b/boost/boost/smart_ptr/detail/array_deleter.hpp @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP +#define BOOST_SMART_PTR_DETAIL_ARRAY_DELETER_HPP + +#include +#include + +namespace boost { + namespace detail { + template + class array_deleter; + template + class array_deleter { + public: + array_deleter(std::size_t size) + : size(size), + object(0) { + } + ~array_deleter() { + if (object) { + array_destroy(object, size); + } + } + void init(T* memory) { + array_init(memory, size); + object = memory; + } +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + void init(T* memory, T&& value) { + array_init_value(memory, size, sp_forward(value)); + object = memory; + } +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + void init(T* memory, Args&&... args) { + array_init_args(memory, size, sp_forward(args)...); + object = memory; + } +#endif +#endif + void init_list(T* memory, const T* list) { + array_init_list(memory, size, list); + object = memory; + } + template + void init_list(T* memory, const T* list) { + array_init_list(memory, size, list); + object = memory; + } + void noinit(T* memory) { + array_noinit(memory, size); + object = memory; + } + void operator()(const void*) { + if (object) { + array_destroy(object, size); + object = 0; + } + } + private: + std::size_t size; + T* object; + }; + template + class array_deleter { + public: + array_deleter() + : object(0) { + } + ~array_deleter() { + if (object) { + array_destroy(object, N); + } + } + void init(T* memory) { + array_init(memory, N); + object = memory; + } +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + void init(T* memory, T&& value) { + array_init_value(memory, N, sp_forward(value)); + object = memory; + } +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + void init(T* memory, Args&&... args) { + array_init_args(memory, N, sp_forward(args)...); + object = memory; + } +#endif +#endif + void init_list(T* memory, const T* list) { + array_init_list(memory, N, list); + object = memory; + } + template + void init_list(T* memory, const T* list) { + array_init_list(memory, N, list); + object = memory; + } + void noinit(T* memory) { + array_noinit(memory, N); + object = memory; + } + void operator()(const void*) { + if (object) { + array_destroy(object, N); + object = 0; + } + } + private: + T* object; + }; + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/array_traits.hpp b/boost/boost/smart_ptr/detail/array_traits.hpp new file mode 100644 index 0000000000..8ef7874791 --- /dev/null +++ b/boost/boost/smart_ptr/detail/array_traits.hpp @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP +#define BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP + +#include + +namespace boost { + namespace detail { + template + struct array_base { + typedef typename boost::remove_cv::type type; + }; + template + struct array_base { + typedef typename array_base::type type; + }; + template + struct array_base { + typedef typename array_base::type type; + }; + template + struct array_total { + enum { + size = 1 + }; + }; + template + struct array_total { + enum { + size = N * array_total::size + }; + }; + template + struct array_inner; + template + struct array_inner { + typedef T type; + }; + template + struct array_inner { + typedef T type; + }; + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/array_utility.hpp b/boost/boost/smart_ptr/detail/array_utility.hpp new file mode 100644 index 0000000000..3cf36d7445 --- /dev/null +++ b/boost/boost/smart_ptr/detail/array_utility.hpp @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP +#define BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP + +#include +#include +#include + +namespace boost { + namespace detail { + template + inline void array_destroy(T*, std::size_t, boost::true_type) { + } + template + inline void array_destroy(T* memory, std::size_t size, boost::false_type) { + for (std::size_t i = size; i > 0; ) { + memory[--i].~T(); + } + } + template + inline void array_destroy(T* memory, std::size_t size) { + boost::has_trivial_destructor type; + array_destroy(memory, size, type); + } + template + inline void array_init(T* memory, std::size_t size, boost::true_type) { + for (std::size_t i = 0; i < size; i++) { + memory[i] = T(); + } + } + template + inline void array_init(T* memory, std::size_t size, boost::false_type) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(); + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(); + } +#endif + } + template + inline void array_init(T* memory, std::size_t size) { + boost::has_trivial_default_constructor type; + array_init(memory, size, type); + } +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline void array_init_value(T* memory, std::size_t size, T&& value) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(value); + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(value); + } +#endif + } +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + inline void array_init_args(T* memory, std::size_t size, Args&&... args) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(args...); + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(args...); + } +#endif + } +#endif +#endif + template + inline void array_init_list(T* memory, std::size_t size, const T* list) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(list[i]); + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(list[i]); + } +#endif + } + template + inline void array_init_list(T* memory, std::size_t size, const T* list) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(list[i % N]); + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T(list[i % N]); + } +#endif + } + template + inline void array_noinit(T*, std::size_t, boost::true_type) { + } + template + inline void array_noinit(T* memory, std::size_t size, boost::false_type) { +#if !defined(BOOST_NO_EXCEPTIONS) + std::size_t i = 0; + try { + for (; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T; + } + } catch (...) { + array_destroy(memory, i); + throw; + } +#else + for (std::size_t i = 0; i < size; i++) { + void* p1 = memory + i; + ::new(p1) T; + } +#endif + } + template + inline void array_noinit(T* memory, std::size_t size) { + boost::has_trivial_default_constructor type; + array_noinit(memory, size, type); + } + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/make_array_helper.hpp b/boost/boost/smart_ptr/detail/make_array_helper.hpp new file mode 100644 index 0000000000..38c9dc9b04 --- /dev/null +++ b/boost/boost/smart_ptr/detail/make_array_helper.hpp @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP +#define BOOST_SMART_PTR_DETAIL_MAKE_ARRAY_HELPER_HPP + +#include + +namespace boost { + namespace detail { + template + class make_array_helper; + template + class make_array_helper { + template + friend class make_array_helper; + public: + typedef Y value_type; + typedef Y* pointer; + typedef const Y* const_pointer; + typedef Y& reference; + typedef const Y& const_reference; + typedef std::size_t size_type; + typedef ptrdiff_t difference_type; + template + struct rebind { + typedef make_array_helper other; + }; + make_array_helper(std::size_t size, T** data) + : size(sizeof(T) * size), + data(data) { + } + template + make_array_helper(const make_array_helper& other) + : size(other.size), + data(other.data) { + } + pointer address(reference value) const { + return &value; + } + const_pointer address(const_reference value) const { + return &value; + } + size_type max_size() const { + return static_cast(-1) / sizeof(Y); + } + pointer allocate(size_type count, const void* = 0) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + void* p1 = ::operator new(n1 + size); + char* p2 = static_cast(p1) + n1; + while (std::size_t(p2) % a1 != 0) { + p2--; + } + *data = reinterpret_cast(p2); + return reinterpret_cast(p1); + } + void deallocate(pointer memory, size_type) { + void* p1 = memory; + ::operator delete(p1); + } + void construct(pointer memory, const Y& value) { + void* p1 = memory; + ::new(p1) Y(value); + } + void destroy(pointer memory) { + memory->~Y(); + } + template + bool operator==(const make_array_helper& other) const { + return true; + } + template + bool operator!=(const make_array_helper& other) const { + return !(*this == other); + } + private: + std::size_t size; + T** data; + }; + template + class make_array_helper { + template + friend class make_array_helper; + public: + typedef Y value_type; + typedef Y* pointer; + typedef const Y* const_pointer; + typedef Y& reference; + typedef const Y& const_reference; + typedef std::size_t size_type; + typedef ptrdiff_t difference_type; + template + struct rebind { + typedef make_array_helper other; + }; + make_array_helper(T** data) + : data(data) { + } + template + make_array_helper(const make_array_helper& other) + : data(other.data) { + } + pointer address(reference value) const { + return &value; + } + const_pointer address(const_reference value) const { + return &value; + } + size_type max_size() const { + return static_cast(-1) / sizeof(Y); + } + pointer allocate(size_type count, const void* = 0) { + std::size_t a1 = boost::alignment_of::value; + std::size_t n1 = count * sizeof(Y) + a1 - 1; + void* p1 = ::operator new(n1 + N1); + char* p2 = static_cast(p1) + n1; + while (std::size_t(p2) % a1 != 0) { + p2--; + } + *data = reinterpret_cast(p2); + return reinterpret_cast(p1); + } + void deallocate(pointer memory, size_type) { + void* p1 = memory; + ::operator delete(p1); + } + void construct(pointer memory, const Y& value) { + void* p1 = memory; + ::new(p1) Y(value); + } + void destroy(pointer memory) { + memory->~Y(); + } + template + bool operator==(const make_array_helper& other) const { + return true; + } + template + bool operator!=(const make_array_helper& other) const { + return !(*this == other); + } + private: + enum { + N1 = N * sizeof(T) + }; + T** data; + }; + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/operator_bool.hpp b/boost/boost/smart_ptr/detail/operator_bool.hpp index 842a05d02b..8ae1527e7c 100644 --- a/boost/boost/smart_ptr/detail/operator_bool.hpp +++ b/boost/boost/smart_ptr/detail/operator_bool.hpp @@ -1,14 +1,21 @@ // This header intentionally has no include guards. // -// Copyright (c) 2001-2009 Peter Dimov +// Copyright (c) 2001-2009, 2012 Peter Dimov // // Distributed under the Boost Software License, Version 1.0. // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt -#if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) +#if !defined( BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( BOOST_NO_CXX11_NULLPTR ) - operator bool () const + explicit operator bool () const BOOST_NOEXCEPT + { + return px != 0; + } + +#elif ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) + + operator bool () const BOOST_NOEXCEPT { return px != 0; } @@ -21,7 +28,7 @@ typedef void (*unspecified_bool_type)( this_type*** ); - operator unspecified_bool_type() const // never throws + operator unspecified_bool_type() const BOOST_NOEXCEPT { return px == 0? 0: unspecified_bool; } @@ -31,18 +38,18 @@ ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) - typedef T * (this_type::*unspecified_bool_type)() const; + typedef element_type * (this_type::*unspecified_bool_type)() const; - operator unspecified_bool_type() const // never throws + operator unspecified_bool_type() const BOOST_NOEXCEPT { return px == 0? 0: &this_type::get; } #else - typedef T * this_type::*unspecified_bool_type; + typedef element_type * this_type::*unspecified_bool_type; - operator unspecified_bool_type() const // never throws + operator unspecified_bool_type() const BOOST_NOEXCEPT { return px == 0? 0: &this_type::px; } @@ -50,7 +57,7 @@ #endif // operator! is redundant, but some compilers need it - bool operator! () const // never throws + bool operator! () const BOOST_NOEXCEPT { return px == 0; } diff --git a/boost/boost/smart_ptr/detail/shared_count.hpp b/boost/boost/smart_ptr/detail/shared_count.hpp index f96a220391..f055fd0dfd 100644 --- a/boost/boost/smart_ptr/detail/shared_count.hpp +++ b/boost/boost/smart_ptr/detail/shared_count.hpp @@ -35,7 +35,14 @@ // rather than including directly: #include // std::auto_ptr #include // std::less -#include // std::bad_alloc + +#ifdef BOOST_NO_EXCEPTIONS +# include // std::bad_alloc +#endif + +#if !defined( BOOST_NO_CXX11_SMART_PTR ) +# include +#endif namespace boost { @@ -56,6 +63,38 @@ template< class D > struct sp_inplace_tag { }; +#if !defined( BOOST_NO_CXX11_SMART_PTR ) + +template< class T > class sp_reference_wrapper +{ +public: + + explicit sp_reference_wrapper( T & t): t_( boost::addressof( t ) ) + { + } + + template< class Y > void operator()( Y * p ) const + { + (*t_)( p ); + } + +private: + + T * t_; +}; + +template< class D > struct sp_convert_reference +{ + typedef D type; +}; + +template< class D > struct sp_convert_reference< D& > +{ + typedef sp_reference_wrapper< D > type; +}; + +#endif + class weak_count; class shared_count @@ -300,6 +339,33 @@ public: #endif +#if !defined( BOOST_NO_CXX11_SMART_PTR ) + + template + explicit shared_count( std::unique_ptr & r ): pi_( 0 ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + typedef typename sp_convert_reference::type D2; + + D2 d2( r.get_deleter() ); + pi_ = new sp_counted_impl_pd< typename std::unique_ptr::pointer, D2 >( r.get(), d2 ); + +#ifdef BOOST_NO_EXCEPTIONS + + if( pi_ == 0 ) + { + boost::throw_exception( std::bad_alloc() ); + } + +#endif + + r.release(); + } + +#endif + ~shared_count() // nothrow { if( pi_ != 0 ) pi_->release(); @@ -316,7 +382,7 @@ public: if( pi_ != 0 ) pi_->add_ref_copy(); } -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) shared_count(shared_count && r): pi_(r.pi_) // nothrow #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) @@ -381,6 +447,11 @@ public: { return pi_? pi_->get_deleter( ti ): 0; } + + void * get_untyped_deleter() const + { + return pi_? pi_->get_untyped_deleter(): 0; + } }; @@ -423,7 +494,7 @@ public: // Move support -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) weak_count(weak_count && r): pi_(r.pi_) // nothrow #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) diff --git a/boost/boost/smart_ptr/detail/sp_convertible.hpp b/boost/boost/smart_ptr/detail/sp_convertible.hpp index eb39797b51..31b2627825 100644 --- a/boost/boost/smart_ptr/detail/sp_convertible.hpp +++ b/boost/boost/smart_ptr/detail/sp_convertible.hpp @@ -48,6 +48,21 @@ template< class Y, class T > struct sp_convertible enum _vt { value = sizeof( (f)( static_cast(0) ) ) == sizeof(yes) }; }; +template< class Y, class T > struct sp_convertible< Y, T[] > +{ + enum _vt { value = false }; +}; + +template< class Y, class T > struct sp_convertible< Y[], T[] > +{ + enum _vt { value = sp_convertible< Y[1], T[1] >::value }; +}; + +template< class Y, std::size_t N, class T > struct sp_convertible< Y[N], T[] > +{ + enum _vt { value = sp_convertible< Y[1], T[1] >::value }; +}; + struct sp_empty { }; diff --git a/boost/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/boost/smart_ptr/detail/sp_counted_base.hpp index 8401bfecbc..9ced2b95ea 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base.hpp @@ -32,22 +32,28 @@ #elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 ) # include -#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) -# include +#elif defined( __SNC__ ) +# include -#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) -# include +#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__) +# include #elif defined(__HP_aCC) && defined(__ia64) # include +#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__) +# include + +#elif defined( __IBMCPP__ ) && defined( __powerpc ) +# include + #elif defined( __MWERKS__ ) && defined( __POWERPC__ ) # include -#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) +#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX ) # include -#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) +#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) # include #elif defined( BOOST_SP_HAS_SYNC ) diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp index dffd995b16..cebc243d2e 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp @@ -104,6 +104,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp index 0208678aee..fe6c727e38 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp @@ -96,6 +96,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp index 51ac56a943..6c268e8921 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp @@ -124,6 +124,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp index d122a49bdb..f6e3904157 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp @@ -111,6 +111,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp index 3f1f449912..545c8ae4fc 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp @@ -135,6 +135,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp index 7f5c414f17..2e5bc0e853 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp @@ -135,6 +135,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp index 21fa59dcc4..c6d20ce7ea 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp @@ -120,6 +120,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp index 4d7fa8d4ab..173dce5c81 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp @@ -127,6 +127,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp index dfd70e7d7e..5c901f9d16 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp @@ -59,6 +59,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp index 3c56fecfc3..a742c3df58 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp @@ -70,6 +70,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp new file mode 100644 index 0000000000..56ed79fa97 --- /dev/null +++ b/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp @@ -0,0 +1,162 @@ +#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED +#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED + +// MS compatible compilers support #pragma once +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+ +// +// Copyright (c) 2006 Piotr Wyderski +// Copyright (c) 2006 Tomas Puverle +// Copyright (c) 2006 Peter Dimov +// Copyright (c) 2011 Emil Dotchevski +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// Thanks to Michael van der Westhuizen + +#include +#include // uint32_t + +namespace boost +{ + +namespace detail +{ + +inline uint32_t compare_and_swap( uint32_t * dest_, uint32_t compare_, uint32_t swap_ ) +{ + return __builtin_cellAtomicCompareAndSwap32(dest_,compare_,swap_); +} + +inline uint32_t atomic_fetch_and_add( uint32_t * pw, uint32_t dv ) +{ + // long r = *pw; + // *pw += dv; + // return r; + + for( ;; ) + { + uint32_t r = *pw; + + if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) ) + { + return r; + } + } +} + +inline void atomic_increment( uint32_t * pw ) +{ + (void) __builtin_cellAtomicIncr32( pw ); +} + +inline uint32_t atomic_decrement( uint32_t * pw ) +{ + return __builtin_cellAtomicDecr32( pw ); +} + +inline uint32_t atomic_conditional_increment( uint32_t * pw ) +{ + // long r = *pw; + // if( r != 0 ) ++*pw; + // return r; + + for( ;; ) + { + uint32_t r = *pw; + + if( r == 0 ) + { + return r; + } + + if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) ) + { + return r; + } + } +} + +class sp_counted_base +{ +private: + + sp_counted_base( sp_counted_base const & ); + sp_counted_base & operator= ( sp_counted_base const & ); + + uint32_t use_count_; // #shared + uint32_t weak_count_; // #weak + (#shared != 0) + +public: + + sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + { + } + + virtual ~sp_counted_base() // nothrow + { + } + + // dispose() is called when use_count_ drops to zero, to release + // the resources managed by *this. + + virtual void dispose() = 0; // nothrow + + // destroy() is called when weak_count_ drops to zero. + + virtual void destroy() // nothrow + { + delete this; + } + + virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; + + void add_ref_copy() + { + atomic_increment( &use_count_ ); + } + + bool add_ref_lock() // true on success + { + return atomic_conditional_increment( &use_count_ ) != 0; + } + + void release() // nothrow + { + if( atomic_decrement( &use_count_ ) == 1 ) + { + dispose(); + weak_release(); + } + } + + void weak_add_ref() // nothrow + { + atomic_increment( &weak_count_ ); + } + + void weak_release() // nothrow + { + if( atomic_decrement( &weak_count_ ) == 1 ) + { + destroy(); + } + } + + long use_count() const // nothrow + { + return const_cast< uint32_t const volatile & >( use_count_ ); + } +}; + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp index bbd11e60e9..77734e727d 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp @@ -84,6 +84,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp index 41f654e19b..fafed0e72e 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp @@ -109,6 +109,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp new file mode 100644 index 0000000000..162f309b56 --- /dev/null +++ b/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp @@ -0,0 +1,151 @@ +#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED +#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED + +// +// detail/sp_counted_base_vacpp_ppc.hpp - xlC(vacpp) on POWER +// based on: detail/sp_counted_base_w32.hpp +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// Copyright 2006 Michael van der Westhuizen +// Copyright 2012 IBM Corp. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// Lock-free algorithm by Alexander Terekhov +// +// Thanks to Ben Hitchings for the #weak + (#shared != 0) +// formulation +// + +#include + +extern "builtin" void __lwsync(void); +extern "builtin" void __isync(void); +extern "builtin" int __fetch_and_add(volatile int* addr, int val); +extern "builtin" int __compare_and_swap(volatile int*, int*, int); + +namespace boost +{ + +namespace detail +{ + +inline void atomic_increment( int *pw ) +{ + // ++*pw; + __lwsync(); + __fetch_and_add(pw, 1); + __isync(); +} + +inline int atomic_decrement( int *pw ) +{ + // return --*pw; + __lwsync(); + int originalValue = __fetch_and_add(pw, -1); + __isync(); + + return (originalValue - 1); +} + +inline int atomic_conditional_increment( int *pw ) +{ + // if( *pw != 0 ) ++*pw; + // return *pw; + + __lwsync(); + int v = *const_cast(pw); + for (;;) + // loop until state is known + { + if (v == 0) return 0; + if (__compare_and_swap(pw, &v, v + 1)) + { + __isync(); return (v + 1); + } + } +} + +class sp_counted_base +{ +private: + + sp_counted_base( sp_counted_base const & ); + sp_counted_base & operator= ( sp_counted_base const & ); + + int use_count_; // #shared + int weak_count_; // #weak + (#shared != 0) + char pad[64] __attribute__((__aligned__(64))); + // pad to prevent false sharing +public: + + sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + { + } + + virtual ~sp_counted_base() // nothrow + { + } + + // dispose() is called when use_count_ drops to zero, to release + // the resources managed by *this. + + virtual void dispose() = 0; // nothrow + + // destroy() is called when weak_count_ drops to zero. + + virtual void destroy() // nothrow + { + delete this; + } + + virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; + + void add_ref_copy() + { + atomic_increment( &use_count_ ); + } + + bool add_ref_lock() // true on success + { + return atomic_conditional_increment( &use_count_ ) != 0; + } + + void release() // nothrow + { + if( atomic_decrement( &use_count_ ) == 0 ) + { + dispose(); + weak_release(); + } + } + + void weak_add_ref() // nothrow + { + atomic_increment( &weak_count_ ); + } + + void weak_release() // nothrow + { + if( atomic_decrement( &weak_count_ ) == 0 ) + { + destroy(); + } + } + + long use_count() const // nothrow + { + return *const_cast(&use_count_); + } +}; + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp index 06aa456571..ff394dc6bc 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp @@ -67,6 +67,7 @@ public: } virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_untyped_deleter() = 0; void add_ref_copy() { diff --git a/boost/boost/smart_ptr/detail/sp_counted_impl.hpp b/boost/boost/smart_ptr/detail/sp_counted_impl.hpp index aab39bdd03..d15cd3cf1c 100644 --- a/boost/boost/smart_ptr/detail/sp_counted_impl.hpp +++ b/boost/boost/smart_ptr/detail/sp_counted_impl.hpp @@ -83,6 +83,11 @@ public: return 0; } + virtual void * get_untyped_deleter() + { + return 0; + } + #if defined(BOOST_SP_USE_STD_ALLOCATOR) void * operator new( std::size_t ) @@ -153,6 +158,11 @@ public: return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast( del ): 0; } + virtual void * get_untyped_deleter() + { + return &reinterpret_cast( del ); + } + #if defined(BOOST_SP_USE_STD_ALLOCATOR) void * operator new( std::size_t ) @@ -226,6 +236,11 @@ public: { return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast( d_ ): 0; } + + virtual void * get_untyped_deleter() + { + return &reinterpret_cast( d_ ); + } }; #ifdef __CODEGUARD__ diff --git a/boost/boost/smart_ptr/detail/sp_forward.hpp b/boost/boost/smart_ptr/detail/sp_forward.hpp new file mode 100644 index 0000000000..5f1d190cef --- /dev/null +++ b/boost/boost/smart_ptr/detail/sp_forward.hpp @@ -0,0 +1,39 @@ +#ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED +#define BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// detail/sp_forward.hpp +// +// Copyright 2008,2012 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt + +#include + +namespace boost +{ + +namespace detail +{ + +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + +template< class T > T&& sp_forward( T & t ) BOOST_NOEXCEPT +{ + return static_cast< T&& >( t ); +} + +#endif + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/detail/sp_has_sync.hpp b/boost/boost/smart_ptr/detail/sp_has_sync.hpp index 12acea8455..16de21d379 100644 --- a/boost/boost/smart_ptr/detail/sp_has_sync.hpp +++ b/boost/boost/smart_ptr/detail/sp_has_sync.hpp @@ -20,7 +20,17 @@ // are available. // -#if defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( BOOST_SP_NO_SYNC ) +#ifndef BOOST_SP_NO_SYNC + +#if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 ) + +# define BOOST_SP_HAS_SYNC + +#elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 ) + +# define BOOST_SP_HAS_SYNC + +#elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) #define BOOST_SP_HAS_SYNC @@ -44,10 +54,16 @@ #undef BOOST_SP_HAS_SYNC #endif -#if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1100 ) +#if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 ) #undef BOOST_SP_HAS_SYNC #endif -#endif // __GNUC__ * 100 + __GNUC_MINOR__ >= 401 +#if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9)) +#undef BOOST_SP_HAS_SYNC +#endif + +#endif + +#endif // #ifndef BOOST_SP_NO_SYNC #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/detail/sp_if_array.hpp b/boost/boost/smart_ptr/detail/sp_if_array.hpp new file mode 100644 index 0000000000..661e1785ec --- /dev/null +++ b/boost/boost/smart_ptr/detail/sp_if_array.hpp @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP +#define BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP + +#include + +namespace boost { + namespace detail { + template + struct sp_if_array; + template + struct sp_if_array { + typedef boost::shared_ptr type; + }; + template + struct sp_if_size_array; + template + struct sp_if_size_array { + typedef boost::shared_ptr type; + }; + } +} + +#endif diff --git a/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp b/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp new file mode 100644 index 0000000000..ccbb1238fe --- /dev/null +++ b/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp @@ -0,0 +1,45 @@ +#ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED +#define BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// detail/sp_nullptr_t.hpp +// +// Copyright 2013 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt + +#include +#include + +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +namespace boost +{ + +namespace detail +{ + +#if defined( __clang__ ) && !defined( _LIBCPP_VERSION ) && !defined( BOOST_NO_CXX11_DECLTYPE ) + + typedef decltype(nullptr) sp_nullptr_t; + +#else + + typedef std::nullptr_t sp_nullptr_t; + +#endif + +} // namespace detail + +} // namespace boost + +#endif // !defined( BOOST_NO_CXX11_NULLPTR ) + +#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp index f58ea44168..016796a91d 100644 --- a/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +++ b/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp @@ -11,13 +11,15 @@ #include -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) +#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7S__) # define BOOST_SP_ARM_BARRIER "dmb" +# define BOOST_SP_ARM_HAS_LDREX #elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) # define BOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5" +# define BOOST_SP_ARM_HAS_LDREX #else @@ -43,13 +45,28 @@ public: { int r; +#ifdef BOOST_SP_ARM_HAS_LDREX + __asm__ __volatile__( - "swp %0, %1, [%2]\n\t" - BOOST_SP_ARM_BARRIER : + "ldrex %0, [%2]; \n" + "cmp %0, %1; \n" + "strexne %0, %1, [%2]; \n" + BOOST_SP_ARM_BARRIER : "=&r"( r ): // outputs "r"( 1 ), "r"( &v_ ): // inputs "memory", "cc" ); +#else + + __asm__ __volatile__( + "swp %0, %1, [%2];\n" + BOOST_SP_ARM_BARRIER : + "=&r"( r ): // outputs + "r"( 1 ), "r"( &v_ ): // inputs + "memory", "cc" ); + +#endif + return r == 0; } @@ -98,5 +115,6 @@ public: #define BOOST_DETAIL_SPINLOCK_INIT {0} #undef BOOST_SP_ARM_BARRIER +#undef BOOST_SP_ARM_HAS_LDREX #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/enable_shared_from_this.hpp b/boost/boost/smart_ptr/enable_shared_from_this.hpp index f7b144525b..3230f02579 100644 --- a/boost/boost/smart_ptr/enable_shared_from_this.hpp +++ b/boost/boost/smart_ptr/enable_shared_from_this.hpp @@ -25,20 +25,20 @@ template class enable_shared_from_this { protected: - enable_shared_from_this() + enable_shared_from_this() BOOST_NOEXCEPT { } - enable_shared_from_this(enable_shared_from_this const &) + enable_shared_from_this(enable_shared_from_this const &) BOOST_NOEXCEPT { } - enable_shared_from_this & operator=(enable_shared_from_this const &) + enable_shared_from_this & operator=(enable_shared_from_this const &) BOOST_NOEXCEPT { return *this; } - ~enable_shared_from_this() + ~enable_shared_from_this() BOOST_NOEXCEPT // ~weak_ptr newer throws, so this call also must not throw { } diff --git a/boost/boost/smart_ptr/intrusive_ptr.hpp b/boost/boost/smart_ptr/intrusive_ptr.hpp index a575223cde..b6f5bcd53a 100644 --- a/boost/boost/smart_ptr/intrusive_ptr.hpp +++ b/boost/boost/smart_ptr/intrusive_ptr.hpp @@ -18,6 +18,7 @@ #include #include #include +#include #include // for std::less @@ -58,7 +59,7 @@ public: typedef T element_type; - intrusive_ptr(): px( 0 ) + intrusive_ptr() BOOST_NOEXCEPT : px( 0 ) { } @@ -108,14 +109,14 @@ public: // Move support -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - intrusive_ptr(intrusive_ptr && rhs): px( rhs.px ) + intrusive_ptr(intrusive_ptr && rhs) BOOST_NOEXCEPT : px( rhs.px ) { rhs.px = 0; } - intrusive_ptr & operator=(intrusive_ptr && rhs) + intrusive_ptr & operator=(intrusive_ptr && rhs) BOOST_NOEXCEPT { this_type( static_cast< intrusive_ptr && >( rhs ) ).swap(*this); return *this; @@ -135,7 +136,7 @@ public: return *this; } - void reset() + void reset() BOOST_NOEXCEPT { this_type().swap( *this ); } @@ -145,7 +146,7 @@ public: this_type( rhs ).swap( *this ); } - T * get() const + T * get() const BOOST_NOEXCEPT { return px; } @@ -165,7 +166,7 @@ public: // implicit conversion to "bool" #include - void swap(intrusive_ptr & rhs) + void swap(intrusive_ptr & rhs) BOOST_NOEXCEPT { T * tmp = px; px = rhs.px; @@ -218,6 +219,30 @@ template inline bool operator!=(intrusive_ptr const & a, intrusive_p #endif +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +template inline bool operator==( intrusive_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator==( boost::detail::sp_nullptr_t, intrusive_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator!=( intrusive_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +template inline bool operator!=( boost::detail::sp_nullptr_t, intrusive_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +#endif + template inline bool operator<(intrusive_ptr const & a, intrusive_ptr const & b) { return std::less()(a.get(), b.get()); diff --git a/boost/boost/smart_ptr/make_shared.hpp b/boost/boost/smart_ptr/make_shared.hpp index 7b605e2abc..8d0e3ea400 100644 --- a/boost/boost/smart_ptr/make_shared.hpp +++ b/boost/boost/smart_ptr/make_shared.hpp @@ -3,7 +3,7 @@ // make_shared.hpp // -// Copyright (c) 2007, 2008 Peter Dimov +// Copyright (c) 2007, 2008, 2012 Peter Dimov // // Distributed under the Boost Software License, Version 1.0. // See accompanying file LICENSE_1_0.txt or copy at @@ -12,970 +12,11 @@ // See http://www.boost.org/libs/smart_ptr/make_shared.html // for documentation. -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -template< std::size_t N, std::size_t A > struct sp_aligned_storage -{ - union type - { - char data_[ N ]; - typename boost::type_with_alignment< A >::type align_; - }; -}; - -template< class T > class sp_ms_deleter -{ -private: - - typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type; - - bool initialized_; - storage_type storage_; - -private: - - void destroy() - { - if( initialized_ ) - { -#if defined( __GNUC__ ) - - // fixes incorrect aliasing warning - T * p = reinterpret_cast< T* >( storage_.data_ ); - p->~T(); - -#else - - reinterpret_cast< T* >( storage_.data_ )->~T(); +#include +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_SFINAE ) +# include +# include #endif - initialized_ = false; - } - } - -public: - - sp_ms_deleter(): initialized_( false ) - { - } - - // optimization: do not copy storage_ - sp_ms_deleter( sp_ms_deleter const & ): initialized_( false ) - { - } - - ~sp_ms_deleter() - { - destroy(); - } - - void operator()( T * ) - { - destroy(); - } - - void * address() - { - return storage_.data_; - } - - void set_initialized() - { - initialized_ = true; - } -}; - -#if defined( BOOST_HAS_RVALUE_REFS ) - -template< class T > T&& sp_forward( T & t ) -{ - return static_cast< T&& >( t ); -} - -#endif - -} // namespace detail - -#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) -# define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >() -#else -# define BOOST_SP_MSD( T ) boost::detail::sp_ms_deleter< T >() -#endif - -// Zero-argument versions -// -// Used even when variadic templates are available because of the new T() vs new T issue - -template< class T > boost::shared_ptr< T > make_shared() -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T(); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A > boost::shared_ptr< T > allocate_shared( A const & a ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T(); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#if defined( BOOST_HAS_VARIADIC_TMPL ) && defined( BOOST_HAS_RVALUE_REFS ) - -// Variadic templates, rvalue reference - -template< class T, class Arg1, class... Args > boost::shared_ptr< T > make_shared( Arg1 && arg1, Args && ... args ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( boost::detail::sp_forward( arg1 ), boost::detail::sp_forward( args )... ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class Arg1, class... Args > boost::shared_ptr< T > allocate_shared( A const & a, Arg1 && arg1, Args && ... args ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( boost::detail::sp_forward( arg1 ), boost::detail::sp_forward( args )... ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#elif defined( BOOST_HAS_RVALUE_REFS ) - -// For example MSVC 10.0 - -template< class T, class A1 > -boost::shared_ptr< T > make_shared( A1 && a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ), - boost::detail::sp_forward( a8 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ), - boost::detail::sp_forward( a8 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -boost::shared_ptr< T > make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ), - boost::detail::sp_forward( a8 ), - boost::detail::sp_forward( a9 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::detail::sp_forward( a1 ), - boost::detail::sp_forward( a2 ), - boost::detail::sp_forward( a3 ), - boost::detail::sp_forward( a4 ), - boost::detail::sp_forward( a5 ), - boost::detail::sp_forward( a6 ), - boost::detail::sp_forward( a7 ), - boost::detail::sp_forward( a8 ), - boost::detail::sp_forward( a9 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#else - -// C++03 version - -template< class T, class A1 > -boost::shared_ptr< T > make_shared( A1 const & a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt ); - - void * pv = pd->address(); - - ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#endif - -#undef BOOST_SP_MSD - -} // namespace boost - #endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/make_shared_array.hpp b/boost/boost/smart_ptr/make_shared_array.hpp new file mode 100644 index 0000000000..eb0578d9ff --- /dev/null +++ b/boost/boost/smart_ptr/make_shared_array.hpp @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2012 Glen Joseph Fernandes + * glenfe at live dot com + * + * Distributed under the Boost Software License, + * Version 1.0. (See accompanying file LICENSE_1_0.txt + * or copy at http://boost.org/LICENSE_1_0.txt) + */ +#ifndef BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP +#define BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP + +#include +#include +#include +#include +#include +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) +#include +#endif + +namespace boost { + template + inline typename boost::detail::sp_if_array::type + make_shared(std::size_t size) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2); + return boost::shared_ptr(s1, p1); + } +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline typename boost::detail::sp_if_array::type + make_shared(std::size_t size, Args&&... args) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(args)...); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + make_shared(Args&&... args) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::make_array_helper a1(&p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(args)...); + return boost::shared_ptr(s1, p1); + } +#endif +#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) + template + inline typename boost::detail::sp_if_size_array::type + make_shared(const T& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + boost::detail::make_array_helper a1(&p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_array::type + make_shared(std::size_t size, + const typename boost::detail::array_inner::type& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + M = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + std::size_t n1 = M * size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->template init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + make_shared(const typename boost::detail::array_inner::type& list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + enum { + M = boost::detail::array_total::size, + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + boost::detail::make_array_helper a1(&p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->template init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + template + inline typename boost::detail::sp_if_array::type + make_shared(std::initializer_list::type> list) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + typedef const T2 T3; + T1* p1 = 0; + T2* p2 = 0; + T3* p3 = 0; + std::size_t n1 = list.size() * boost::detail::array_total::size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p3 = reinterpret_cast(list.begin()); + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init_list(p2, p3); + return boost::shared_ptr(s1, p1); + } +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline typename boost::detail::sp_if_array::type + make_shared(std::size_t size, + typename boost::detail::array_base::type&& value) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(value)); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + make_shared(typename boost::detail::array_base::type&& value) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::make_array_helper a1(&p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->init(p2, boost::detail::sp_forward(value)); + return boost::shared_ptr(s1, p1); + } +#endif +#endif + template + inline typename boost::detail::sp_if_array::type + make_shared_noinit(std::size_t size) { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + T1* p1 = 0; + T2* p2 = 0; + std::size_t n1 = size * boost::detail::array_total::size; + boost::detail::make_array_helper a1(n1, &p2); + boost::detail::array_deleter d1(n1); + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->noinit(p2); + return boost::shared_ptr(s1, p1); + } + template + inline typename boost::detail::sp_if_size_array::type + make_shared_noinit() { + typedef typename boost::detail::array_inner::type T1; + typedef typename boost::detail::array_base::type T2; + enum { + N = boost::detail::array_total::size + }; + T1* p1 = 0; + T2* p2 = 0; + boost::detail::make_array_helper a1(&p2); + boost::detail::array_deleter d1; + boost::shared_ptr s1(p1, d1, a1); + typedef boost::detail::array_deleter* D2; + p1 = reinterpret_cast(p2); + D2 d2 = static_cast(s1._internal_get_untyped_deleter()); + d2->noinit(p2); + return boost::shared_ptr(s1, p1); + } +} + +#endif diff --git a/boost/boost/smart_ptr/make_shared_object.hpp b/boost/boost/smart_ptr/make_shared_object.hpp new file mode 100644 index 0000000000..89a711684c --- /dev/null +++ b/boost/boost/smart_ptr/make_shared_object.hpp @@ -0,0 +1,1028 @@ +#ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED +#define BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED + +// make_shared_object.hpp +// +// Copyright (c) 2007, 2008, 2012 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/smart_ptr/make_shared.html +// for documentation. + +#include +#include +#include +#include +#include +#include +#include + +namespace boost +{ + +namespace detail +{ + +template< std::size_t N, std::size_t A > struct sp_aligned_storage +{ + union type + { + char data_[ N ]; + typename boost::type_with_alignment< A >::type align_; + }; +}; + +template< class T > class sp_ms_deleter +{ +private: + + typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type; + + bool initialized_; + storage_type storage_; + +private: + + void destroy() + { + if( initialized_ ) + { +#if defined( __GNUC__ ) + + // fixes incorrect aliasing warning + T * p = reinterpret_cast< T* >( storage_.data_ ); + p->~T(); + +#else + + reinterpret_cast< T* >( storage_.data_ )->~T(); + +#endif + + initialized_ = false; + } + } + +public: + + sp_ms_deleter() BOOST_NOEXCEPT : initialized_( false ) + { + } + + // optimization: do not copy storage_ + sp_ms_deleter( sp_ms_deleter const & ) BOOST_NOEXCEPT : initialized_( false ) + { + } + + ~sp_ms_deleter() + { + destroy(); + } + + void operator()( T * ) + { + destroy(); + } + + void * address() BOOST_NOEXCEPT + { + return storage_.data_; + } + + void set_initialized() BOOST_NOEXCEPT + { + initialized_ = true; + } +}; + +template< class T > struct sp_if_not_array +{ + typedef boost::shared_ptr< T > type; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T > struct sp_if_not_array< T[] > +{ +}; + +#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) + +template< class T, std::size_t N > struct sp_if_not_array< T[N] > +{ +}; + +#endif + +#endif + +} // namespace detail + +#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) +# define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >() +#else +# define BOOST_SP_MSD( T ) boost::detail::sp_ms_deleter< T >() +#endif + +// Zero-argument versions +// +// Used even when variadic templates are available because of the new T() vs new T issue + +template< class T > typename boost::detail::sp_if_not_array< T >::type make_shared() +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T(); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T > typename boost::detail::sp_if_not_array< T >::type make_shared_noinit() +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T; + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A > typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T(); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A > typename boost::detail::sp_if_not_array< T >::type allocate_shared_noinit( A const & a ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T; + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +#if !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + +// Variadic templates, rvalue reference + +template< class T, class Arg1, class... Args > typename boost::detail::sp_if_not_array< T >::type make_shared( Arg1 && arg1, Args && ... args ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( boost::detail::sp_forward( arg1 ), boost::detail::sp_forward( args )... ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class Arg1, class... Args > typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, Arg1 && arg1, Args && ... args ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( boost::detail::sp_forward( arg1 ), boost::detail::sp_forward( args )... ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +#elif !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + +// For example MSVC 10.0 + +template< class T, class A1 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ), + boost::detail::sp_forward( a8 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ), + boost::detail::sp_forward( a8 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ), + boost::detail::sp_forward( a8 ), + boost::detail::sp_forward( a9 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( + boost::detail::sp_forward( a1 ), + boost::detail::sp_forward( a2 ), + boost::detail::sp_forward( a3 ), + boost::detail::sp_forward( a4 ), + boost::detail::sp_forward( a5 ), + boost::detail::sp_forward( a6 ), + boost::detail::sp_forward( a7 ), + boost::detail::sp_forward( a8 ), + boost::detail::sp_forward( a9 ) + ); + + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +#else + +// C++03 version + +template< class T, class A1 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > +typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > +typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 ) +{ + boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); + + boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); + + void * pv = pd->address(); + + ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); + pd->set_initialized(); + + T * pt2 = static_cast< T* >( pv ); + + boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); + return boost::shared_ptr< T >( pt, pt2 ); +} + +#endif + +#undef BOOST_SP_MSD + +} // namespace boost + +#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED diff --git a/boost/boost/smart_ptr/scoped_array.hpp b/boost/boost/smart_ptr/scoped_array.hpp index 483460fa06..e395e28f85 100644 --- a/boost/boost/smart_ptr/scoped_array.hpp +++ b/boost/boost/smart_ptr/scoped_array.hpp @@ -11,9 +11,10 @@ // http://www.boost.org/libs/smart_ptr/scoped_array.htm // +#include #include #include -#include // in case ptrdiff_t not in std +#include #include @@ -53,7 +54,7 @@ public: typedef T element_type; - explicit scoped_array( T * p = 0 ) : px( p ) // never throws + explicit scoped_array( T * p = 0 ) BOOST_NOEXCEPT : px( p ) { #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) boost::sp_array_constructor_hook( px ); @@ -68,20 +69,20 @@ public: boost::checked_array_delete( px ); } - void reset(T * p = 0) // never throws + void reset(T * p = 0) // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) { BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors this_type(p).swap(*this); } - T & operator[](std::ptrdiff_t i) const // never throws + T & operator[](std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) { BOOST_ASSERT( px != 0 ); BOOST_ASSERT( i >= 0 ); return px[i]; } - T * get() const // never throws + T * get() const BOOST_NOEXCEPT { return px; } @@ -89,7 +90,7 @@ public: // implicit conversion to "bool" #include - void swap(scoped_array & b) // never throws + void swap(scoped_array & b) BOOST_NOEXCEPT { T * tmp = b.px; b.px = px; @@ -97,7 +98,31 @@ public: } }; -template inline void swap(scoped_array & a, scoped_array & b) // never throws +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +template inline bool operator==( scoped_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator==( boost::detail::sp_nullptr_t, scoped_array const & p ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator!=( scoped_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +template inline bool operator!=( boost::detail::sp_nullptr_t, scoped_array const & p ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +#endif + +template inline void swap(scoped_array & a, scoped_array & b) BOOST_NOEXCEPT { a.swap(b); } diff --git a/boost/boost/smart_ptr/scoped_ptr.hpp b/boost/boost/smart_ptr/scoped_ptr.hpp index df479e5727..be6722d5f5 100644 --- a/boost/boost/smart_ptr/scoped_ptr.hpp +++ b/boost/boost/smart_ptr/scoped_ptr.hpp @@ -11,8 +11,10 @@ // http://www.boost.org/libs/smart_ptr/scoped_ptr.htm // +#include #include #include +#include #include #ifndef BOOST_NO_AUTO_PTR @@ -63,7 +65,7 @@ public: #ifndef BOOST_NO_AUTO_PTR - explicit scoped_ptr( std::auto_ptr p ): px( p.release() ) // never throws + explicit scoped_ptr( std::auto_ptr p ) BOOST_NOEXCEPT : px( p.release() ) { #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) boost::sp_scalar_constructor_hook( px ); @@ -98,7 +100,7 @@ public: return px; } - T * get() const // never throws + T * get() const BOOST_NOEXCEPT { return px; } @@ -106,7 +108,7 @@ public: // implicit conversion to "bool" #include - void swap(scoped_ptr & b) // never throws + void swap(scoped_ptr & b) BOOST_NOEXCEPT { T * tmp = b.px; b.px = px; @@ -114,14 +116,38 @@ public: } }; -template inline void swap(scoped_ptr & a, scoped_ptr & b) // never throws +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +template inline bool operator==( scoped_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator==( boost::detail::sp_nullptr_t, scoped_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator!=( scoped_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +template inline bool operator!=( boost::detail::sp_nullptr_t, scoped_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +#endif + +template inline void swap(scoped_ptr & a, scoped_ptr & b) BOOST_NOEXCEPT { a.swap(b); } // get_pointer(p) is a generic way to say p.get() -template inline T * get_pointer(scoped_ptr const & p) +template inline T * get_pointer(scoped_ptr const & p) BOOST_NOEXCEPT { return p.get(); } diff --git a/boost/boost/smart_ptr/shared_array.hpp b/boost/boost/smart_ptr/shared_array.hpp index 36799e68d1..73a07ae1b2 100644 --- a/boost/boost/smart_ptr/shared_array.hpp +++ b/boost/boost/smart_ptr/shared_array.hpp @@ -5,7 +5,7 @@ // shared_array.hpp // // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 Peter Dimov +// Copyright (c) 2001, 2002, 2012 Peter Dimov // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -25,7 +25,9 @@ #include #include +#include #include +#include #include #include // for std::ptrdiff_t @@ -55,59 +57,146 @@ public: typedef T element_type; - explicit shared_array(T * p = 0): px(p), pn(p, deleter()) + shared_array() BOOST_NOEXCEPT : px( 0 ), pn() { } + template + explicit shared_array( Y * p ): px( p ), pn( p, checked_array_deleter() ) + { + boost::detail::sp_assert_convertible< Y[], T[] >(); + } + // // Requirements: D's copy constructor must not throw // // shared_array will release p by calling d(p) // - template shared_array(T * p, D d): px(p), pn(p, d) + template shared_array( Y * p, D d ): px( p ), pn( p, d ) { + boost::detail::sp_assert_convertible< Y[], T[] >(); + } + + // As above, but with allocator. A's copy constructor shall not throw. + + template shared_array( Y * p, D d, A a ): px( p ), pn( p, d, a ) + { + boost::detail::sp_assert_convertible< Y[], T[] >(); } // generated copy constructor, destructor are fine... -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) // ... except in C++0x, move disables the implicit copy - shared_array( shared_array const & r ): px( r.px ), pn( r.pn ) // never throws + shared_array( shared_array const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) { } + shared_array( shared_array && r ) BOOST_NOEXCEPT : px( r.px ), pn() + { + pn.swap( r.pn ); + r.px = 0; + } + #endif + // conversion + + template +#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) + + shared_array( shared_array const & r, typename boost::detail::sp_enable_if_convertible< Y[], T[] >::type = boost::detail::sp_empty() ) + +#else + + shared_array( shared_array const & r ) + +#endif + BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) // never throws + { + boost::detail::sp_assert_convertible< Y[], T[] >(); + } + + // aliasing + + template< class Y > + shared_array( shared_array const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn ) + { + } + // assignment - shared_array & operator=( shared_array const & r ) // never throws + shared_array & operator=( shared_array const & r ) BOOST_NOEXCEPT { this_type( r ).swap( *this ); return *this; } - void reset(T * p = 0) +#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400) + + template + shared_array & operator=( shared_array const & r ) BOOST_NOEXCEPT { - BOOST_ASSERT(p == 0 || p != px); - this_type(p).swap(*this); + this_type( r ).swap( *this ); + return *this; } - template void reset(T * p, D d) +#endif + +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + + shared_array & operator=( shared_array && r ) BOOST_NOEXCEPT { - this_type(p, d).swap(*this); + this_type( static_cast< shared_array && >( r ) ).swap( *this ); + return *this; } - T & operator[] (std::ptrdiff_t i) const // never throws + template + shared_array & operator=( shared_array && r ) BOOST_NOEXCEPT + { + this_type( static_cast< shared_array && >( r ) ).swap( *this ); + return *this; + } + +#endif + + void reset() BOOST_NOEXCEPT + { + this_type().swap( *this ); + } + + template void reset( Y * p ) // Y must be complete + { + BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors + this_type( p ).swap( *this ); + } + + template void reset( Y * p, D d ) + { + this_type( p, d ).swap( *this ); + } + + template void reset( Y * p, D d, A a ) + { + this_type( p, d, a ).swap( *this ); + } + + template void reset( shared_array const & r, element_type * p ) + { + this_type( r, p ).swap( *this ); + } + + T & operator[] (std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) { BOOST_ASSERT(px != 0); BOOST_ASSERT(i >= 0); return px[i]; } - T * get() const // never throws + T * get() const BOOST_NOEXCEPT { return px; } @@ -115,17 +204,17 @@ public: // implicit conversion to "bool" #include - bool unique() const // never throws + bool unique() const BOOST_NOEXCEPT { return pn.unique(); } - long use_count() const // never throws + long use_count() const BOOST_NOEXCEPT { return pn.use_count(); } - void swap(shared_array & other) // never throws + void swap(shared_array & other) BOOST_NOEXCEPT { std::swap(px, other.px); pn.swap(other.pn); @@ -138,27 +227,53 @@ public: private: + template friend class shared_array; + T * px; // contained pointer detail::shared_count pn; // reference counter }; // shared_array -template inline bool operator==(shared_array const & a, shared_array const & b) // never throws +template inline bool operator==(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT { return a.get() == b.get(); } -template inline bool operator!=(shared_array const & a, shared_array const & b) // never throws +template inline bool operator!=(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT { return a.get() != b.get(); } -template inline bool operator<(shared_array const & a, shared_array const & b) // never throws +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +template inline bool operator==( shared_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator==( boost::detail::sp_nullptr_t, shared_array const & p ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator!=( shared_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +template inline bool operator!=( boost::detail::sp_nullptr_t, shared_array const & p ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +#endif + +template inline bool operator<(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT { return std::less()(a.get(), b.get()); } -template void swap(shared_array & a, shared_array & b) // never throws +template void swap(shared_array & a, shared_array & b) BOOST_NOEXCEPT { a.swap(b); } diff --git a/boost/boost/smart_ptr/shared_ptr.hpp b/boost/boost/smart_ptr/shared_ptr.hpp index 1bfb75c71d..d2781c1587 100644 --- a/boost/boost/smart_ptr/shared_ptr.hpp +++ b/boost/boost/smart_ptr/shared_ptr.hpp @@ -32,6 +32,7 @@ #include #include #include +#include #if !defined(BOOST_SP_NO_ATOMIC_ACCESS) #include @@ -57,45 +58,151 @@ namespace boost template class shared_ptr; template class weak_ptr; template class enable_shared_from_this; -template class enable_shared_from_this2; +class enable_shared_from_raw; namespace detail { -struct static_cast_tag {}; -struct const_cast_tag {}; -struct dynamic_cast_tag {}; -struct polymorphic_cast_tag {}; +// sp_element, element_type -template struct shared_ptr_traits +template< class T > struct sp_element { - typedef T & reference; + typedef T type; }; -template<> struct shared_ptr_traits +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T > struct sp_element< T[] > { - typedef void reference; + typedef T type; +}; + +#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) + +template< class T, std::size_t N > struct sp_element< T[N] > +{ + typedef T type; +}; + +#endif + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +// sp_dereference, return type of operator* + +template< class T > struct sp_dereference +{ + typedef T & type; +}; + +template<> struct sp_dereference< void > +{ + typedef void type; }; #if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) -template<> struct shared_ptr_traits +template<> struct sp_dereference< void const > { - typedef void reference; + typedef void type; }; -template<> struct shared_ptr_traits +template<> struct sp_dereference< void volatile > { - typedef void reference; + typedef void type; }; -template<> struct shared_ptr_traits +template<> struct sp_dereference< void const volatile > { - typedef void reference; + typedef void type; +}; + +#endif // !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T > struct sp_dereference< T[] > +{ + typedef void type; +}; + +#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) + +template< class T, std::size_t N > struct sp_dereference< T[N] > +{ + typedef void type; }; #endif +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +// sp_member_access, return type of operator-> + +template< class T > struct sp_member_access +{ + typedef T * type; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T > struct sp_member_access< T[] > +{ + typedef void type; +}; + +#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) + +template< class T, std::size_t N > struct sp_member_access< T[N] > +{ + typedef void type; +}; + +#endif + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +// sp_array_access, return type of operator[] + +template< class T > struct sp_array_access +{ + typedef void type; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T > struct sp_array_access< T[] > +{ + typedef T & type; +}; + +#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) + +template< class T, std::size_t N > struct sp_array_access< T[N] > +{ + typedef T & type; +}; + +#endif + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +// sp_extent, for operator[] index check + +template< class T > struct sp_extent +{ + enum _vt { value = 0 }; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T, std::size_t N > struct sp_extent< T[N] > +{ + enum _vt { value = N }; +}; + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + // enable_shared_from_this support template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe ) @@ -106,13 +213,7 @@ template< class X, class Y, class T > inline void sp_enable_shared_from_this( bo } } -template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_this2< T > const * pe ) -{ - if( pe != 0 ) - { - pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) ); - } -} +template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ); #ifdef _MANAGED @@ -150,6 +251,69 @@ template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R #endif +// sp_assert_convertible + +template< class Y, class T > inline void sp_assert_convertible() +{ +#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) + + // static_assert( sp_convertible< Y, T >::value ); + typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ]; + (void)sizeof( tmp ); + +#else + + T* p = static_cast< Y* >( 0 ); + (void)p; + +#endif +} + +// pointer constructor helper + +template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T > * ppx, Y * p, boost::detail::shared_count & pn ) +{ + boost::detail::shared_count( p ).swap( pn ); + boost::detail::sp_enable_shared_from_this( ppx, p, p ); +} + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * p, boost::detail::shared_count & pn ) +{ + sp_assert_convertible< Y[], T[] >(); + boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); +} + +template< class T, std::size_t N, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * p, boost::detail::shared_count & pn ) +{ + sp_assert_convertible< Y[N], T[N] >(); + boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); +} + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +// deleter constructor helper + +template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T > * ppx, Y * p ) +{ + boost::detail::sp_enable_shared_from_this( ppx, p, p ); +} + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * /*p*/ ) +{ + sp_assert_convertible< Y[], T[] >(); +} + +template< class T, std::size_t N, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * /*p*/ ) +{ + sp_assert_convertible< Y[N], T[N] >(); +} + +#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + } // namespace detail @@ -170,19 +334,24 @@ private: public: - typedef T element_type; - typedef T value_type; - typedef T * pointer; - typedef typename boost::detail::shared_ptr_traits::reference reference; + typedef typename boost::detail::sp_element< T >::type element_type; - shared_ptr(): px(0), pn() // never throws in 1.30+ + shared_ptr() BOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+ { } - template - explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete +#if !defined( BOOST_NO_CXX11_NULLPTR ) + + shared_ptr( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT : px( 0 ), pn() // never throws { - boost::detail::sp_enable_shared_from_this( this, p, p ); + } + +#endif + + template + explicit shared_ptr( Y * p ): px( p ), pn() // Y must be complete + { + boost::detail::sp_pointer_construct( this, p, pn ); } // @@ -191,39 +360,58 @@ public: // shared_ptr will release p by calling d(p) // - template shared_ptr(Y * p, D d): px(p), pn(p, d) + template shared_ptr( Y * p, D d ): px( p ), pn( p, d ) { - boost::detail::sp_enable_shared_from_this( this, p, p ); + boost::detail::sp_deleter_construct( this, p ); } +#if !defined( BOOST_NO_CXX11_NULLPTR ) + + template shared_ptr( boost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d ) + { + } + +#endif + // As above, but with allocator. A's copy constructor shall not throw. template shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a ) { - boost::detail::sp_enable_shared_from_this( this, p, p ); + boost::detail::sp_deleter_construct( this, p ); } +#if !defined( BOOST_NO_CXX11_NULLPTR ) + + template shared_ptr( boost::detail::sp_nullptr_t p, D d, A a ): px( p ), pn( p, d, a ) + { + } + +#endif + // generated copy constructor, destructor are fine... -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) // ... except in C++0x, move disables the implicit copy - shared_ptr( shared_ptr const & r ): px( r.px ), pn( r.pn ) // never throws + shared_ptr( shared_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) { } #endif template - explicit shared_ptr(weak_ptr const & r): pn(r.pn) // may throw + explicit shared_ptr( weak_ptr const & r ): pn( r.pn ) // may throw { + boost::detail::sp_assert_convertible< Y, T >(); + // it is now safe to copy r.px, as pn(r.pn) did not throw px = r.px; } template - shared_ptr( weak_ptr const & r, boost::detail::sp_nothrow_tag ): px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) // never throws + shared_ptr( weak_ptr const & r, boost::detail::sp_nothrow_tag ) + BOOST_NOEXCEPT : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) { if( !pn.empty() ) { @@ -241,72 +429,80 @@ public: shared_ptr( shared_ptr const & r ) #endif - : px( r.px ), pn( r.pn ) // never throws + BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) { + boost::detail::sp_assert_convertible< Y, T >(); } // aliasing template< class Y > - shared_ptr( shared_ptr const & r, T * p ): px( p ), pn( r.pn ) // never throws + shared_ptr( shared_ptr const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn ) { } - template - shared_ptr(shared_ptr const & r, boost::detail::static_cast_tag): px(static_cast(r.px)), pn(r.pn) - { - } - - template - shared_ptr(shared_ptr const & r, boost::detail::const_cast_tag): px(const_cast(r.px)), pn(r.pn) - { - } - - template - shared_ptr(shared_ptr const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast(r.px)), pn(r.pn) - { - if(px == 0) // need to allocate new counter -- the cast failed - { - pn = boost::detail::shared_count(); - } - } - - template - shared_ptr(shared_ptr const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast(r.px)), pn(r.pn) - { - if(px == 0) - { - boost::throw_exception(std::bad_cast()); - } - } - #ifndef BOOST_NO_AUTO_PTR template - explicit shared_ptr(std::auto_ptr & r): px(r.get()), pn() + explicit shared_ptr( std::auto_ptr & r ): px(r.get()), pn() { + boost::detail::sp_assert_convertible< Y, T >(); + Y * tmp = r.get(); - pn = boost::detail::shared_count(r); - boost::detail::sp_enable_shared_from_this( this, tmp, tmp ); + pn = boost::detail::shared_count( r ); + + boost::detail::sp_deleter_construct( this, tmp ); } -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + + template + shared_ptr( std::auto_ptr && r ): px(r.get()), pn() + { + boost::detail::sp_assert_convertible< Y, T >(); + + Y * tmp = r.get(); + pn = boost::detail::shared_count( r ); + + boost::detail::sp_deleter_construct( this, tmp ); + } + +#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) template explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr::type = 0 ): px( r.get() ), pn() { - typename Ap::element_type * tmp = r.get(); - pn = boost::detail::shared_count( r ); - boost::detail::sp_enable_shared_from_this( this, tmp, tmp ); - } + typedef typename Ap::element_type Y; + boost::detail::sp_assert_convertible< Y, T >(); + + Y * tmp = r.get(); + pn = boost::detail::shared_count( r ); + + boost::detail::sp_deleter_construct( this, tmp ); + } #endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #endif // BOOST_NO_AUTO_PTR +#if !defined( BOOST_NO_CXX11_SMART_PTR ) + + template< class Y, class D > + shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn() + { + boost::detail::sp_assert_convertible< Y, T >(); + + typename std::unique_ptr< Y, D >::pointer tmp = r.get(); + pn = boost::detail::shared_count( r ); + + boost::detail::sp_deleter_construct( this, tmp ); + } + +#endif + // assignment - shared_ptr & operator=( shared_ptr const & r ) // never throws + shared_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT { this_type(r).swap(*this); return *this; @@ -315,7 +511,7 @@ public: #if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400) template - shared_ptr & operator=(shared_ptr const & r) // never throws + shared_ptr & operator=(shared_ptr const & r) BOOST_NOEXCEPT { this_type(r).swap(*this); return *this; @@ -328,11 +524,20 @@ public: template shared_ptr & operator=( std::auto_ptr & r ) { - this_type(r).swap(*this); + this_type( r ).swap( *this ); return *this; } -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + + template + shared_ptr & operator=( std::auto_ptr && r ) + { + this_type( static_cast< std::auto_ptr && >( r ) ).swap( *this ); + return *this; + } + +#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) template typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r ) @@ -341,16 +546,26 @@ public: return *this; } - #endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #endif // BOOST_NO_AUTO_PTR +#if !defined( BOOST_NO_CXX11_SMART_PTR ) + + template + shared_ptr & operator=( std::unique_ptr && r ) + { + this_type( static_cast< std::unique_ptr && >( r ) ).swap(*this); + return *this; + } + +#endif + // Move support -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws + shared_ptr( shared_ptr && r ) BOOST_NOEXCEPT : px( r.px ), pn() { pn.swap( r.pn ); r.px = 0; @@ -366,20 +581,22 @@ public: shared_ptr( shared_ptr && r ) #endif - : px( r.px ), pn() // never throws + BOOST_NOEXCEPT : px( r.px ), pn() { + boost::detail::sp_assert_convertible< Y, T >(); + pn.swap( r.pn ); r.px = 0; } - shared_ptr & operator=( shared_ptr && r ) // never throws + shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT { this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); return *this; } template - shared_ptr & operator=( shared_ptr && r ) // never throws + shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT { this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); return *this; @@ -387,15 +604,25 @@ public: #endif - void reset() // never throws in 1.30+ +#if !defined( BOOST_NO_CXX11_NULLPTR ) + + shared_ptr & operator=( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT // never throws + { + this_type().swap(*this); + return *this; + } + +#endif + + void reset() BOOST_NOEXCEPT // never throws in 1.30+ { this_type().swap(*this); } - template void reset(Y * p) // Y must be complete + template void reset( Y * p ) // Y must be complete { - BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors - this_type(p).swap(*this); + BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors + this_type( p ).swap( *this ); } template void reset( Y * p, D d ) @@ -408,24 +635,35 @@ public: this_type( p, d, a ).swap( *this ); } - template void reset( shared_ptr const & r, T * p ) + template void reset( shared_ptr const & r, element_type * p ) { this_type( r, p ).swap( *this ); } - - reference operator* () const // never throws + + // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) + typename boost::detail::sp_dereference< T >::type operator* () const { - BOOST_ASSERT(px != 0); + BOOST_ASSERT( px != 0 ); return *px; } - - T * operator-> () const // never throws + + // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) + typename boost::detail::sp_member_access< T >::type operator-> () const { - BOOST_ASSERT(px != 0); + BOOST_ASSERT( px != 0 ); return px; } + + // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) + typename boost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const + { + BOOST_ASSERT( px != 0 ); + BOOST_ASSERT( i >= 0 && ( i < boost::detail::sp_extent< T >::value || boost::detail::sp_extent< T >::value == 0 ) ); - T * get() const // never throws + return px[ i ]; + } + + element_type * get() const BOOST_NOEXCEPT { return px; } @@ -433,38 +671,43 @@ public: // implicit conversion to "bool" #include - bool unique() const // never throws + bool unique() const BOOST_NOEXCEPT { return pn.unique(); } - long use_count() const // never throws + long use_count() const BOOST_NOEXCEPT { return pn.use_count(); } - void swap(shared_ptr & other) // never throws + void swap( shared_ptr & other ) BOOST_NOEXCEPT { std::swap(px, other.px); pn.swap(other.pn); } - template bool owner_before( shared_ptr const & rhs ) const + template bool owner_before( shared_ptr const & rhs ) const BOOST_NOEXCEPT { return pn < rhs.pn; } - template bool owner_before( weak_ptr const & rhs ) const + template bool owner_before( weak_ptr const & rhs ) const BOOST_NOEXCEPT { return pn < rhs.pn; } - void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const + void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_NOEXCEPT { return pn.get_deleter( ti ); } - bool _internal_equiv( shared_ptr const & r ) const + void * _internal_get_untyped_deleter() const BOOST_NOEXCEPT + { + return pn.get_untyped_deleter(); + } + + bool _internal_equiv( shared_ptr const & r ) const BOOST_NOEXCEPT { return px == r.px && pn == r.pn; } @@ -482,17 +725,17 @@ private: #endif - T * px; // contained pointer + element_type * px; // contained pointer boost::detail::shared_count pn; // reference counter }; // shared_ptr -template inline bool operator==(shared_ptr const & a, shared_ptr const & b) +template inline bool operator==(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT { return a.get() == b.get(); } -template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) +template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT { return a.get() != b.get(); } @@ -501,64 +744,90 @@ template inline bool operator!=(shared_ptr const & a, share // Resolve the ambiguity between our op!= and the one in rel_ops -template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) +template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT { return a.get() != b.get(); } #endif -template inline bool operator<(shared_ptr const & a, shared_ptr const & b) +#if !defined( BOOST_NO_CXX11_NULLPTR ) + +template inline bool operator==( shared_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator==( boost::detail::sp_nullptr_t, shared_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() == 0; +} + +template inline bool operator!=( shared_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +template inline bool operator!=( boost::detail::sp_nullptr_t, shared_ptr const & p ) BOOST_NOEXCEPT +{ + return p.get() != 0; +} + +#endif + +template inline bool operator<(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT { return a.owner_before( b ); } -template inline void swap(shared_ptr & a, shared_ptr & b) +template inline void swap(shared_ptr & a, shared_ptr & b) BOOST_NOEXCEPT { a.swap(b); } -template shared_ptr static_pointer_cast(shared_ptr const & r) +template shared_ptr static_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT { - return shared_ptr(r, boost::detail::static_cast_tag()); + (void) static_cast< T* >( static_cast< U* >( 0 ) ); + + typedef typename shared_ptr::element_type E; + + E * p = static_cast< E* >( r.get() ); + return shared_ptr( r, p ); } -template shared_ptr const_pointer_cast(shared_ptr const & r) +template shared_ptr const_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT { - return shared_ptr(r, boost::detail::const_cast_tag()); + (void) const_cast< T* >( static_cast< U* >( 0 ) ); + + typedef typename shared_ptr::element_type E; + + E * p = const_cast< E* >( r.get() ); + return shared_ptr( r, p ); } -template shared_ptr dynamic_pointer_cast(shared_ptr const & r) +template shared_ptr dynamic_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT { - return shared_ptr(r, boost::detail::dynamic_cast_tag()); + (void) dynamic_cast< T* >( static_cast< U* >( 0 ) ); + + typedef typename shared_ptr::element_type E; + + E * p = dynamic_cast< E* >( r.get() ); + return p? shared_ptr( r, p ): shared_ptr(); } -// shared_*_cast names are deprecated. Use *_pointer_cast instead. - -template shared_ptr shared_static_cast(shared_ptr const & r) +template shared_ptr reinterpret_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT { - return shared_ptr(r, boost::detail::static_cast_tag()); -} + (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) ); -template shared_ptr shared_dynamic_cast(shared_ptr const & r) -{ - return shared_ptr(r, boost::detail::dynamic_cast_tag()); -} + typedef typename shared_ptr::element_type E; -template shared_ptr shared_polymorphic_cast(shared_ptr const & r) -{ - return shared_ptr(r, boost::detail::polymorphic_cast_tag()); -} - -template shared_ptr shared_polymorphic_downcast(shared_ptr const & r) -{ - BOOST_ASSERT(dynamic_cast(r.get()) == r.get()); - return shared_static_cast(r); + E * p = reinterpret_cast< E* >( r.get() ); + return shared_ptr( r, p ); } // get_pointer() enables boost::mem_fn to recognize shared_ptr -template inline T * get_pointer(shared_ptr const & p) +template inline typename shared_ptr::element_type * get_pointer(shared_ptr const & p) BOOST_NOEXCEPT { return p.get(); } @@ -600,6 +869,9 @@ template std::basic_ostream & operator<< (std:: // get_deleter +namespace detail +{ + #if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \ ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \ ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) ) @@ -607,7 +879,7 @@ template std::basic_ostream & operator<< (std:: // g++ 2.9x doesn't allow static_cast(void *) // apparently EDG 2.38 and HP aCC A.03.35 also don't accept it -template D * get_deleter(shared_ptr const & p) +template D * basic_get_deleter(shared_ptr const & p) { void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D)); return const_cast(static_cast(q)); @@ -615,18 +887,64 @@ template D * get_deleter(shared_ptr const & p) #else -template D * get_deleter(shared_ptr const & p) +template D * basic_get_deleter( shared_ptr const & p ) BOOST_NOEXCEPT { - return static_cast(p._internal_get_deleter(BOOST_SP_TYPEID(D))); + return static_cast( p._internal_get_deleter(BOOST_SP_TYPEID(D)) ); } #endif +class esft2_deleter_wrapper +{ +private: + + shared_ptr deleter_; + +public: + + esft2_deleter_wrapper() + { + } + + template< class T > void set_deleter( shared_ptr const & deleter ) + { + deleter_ = deleter; + } + + template D* get_deleter() const BOOST_NOEXCEPT + { + return boost::detail::basic_get_deleter( deleter_ ); + } + + template< class T> void operator()( T* ) + { + BOOST_ASSERT( deleter_.use_count() <= 1 ); + deleter_.reset(); + } +}; + +} // namespace detail + +template D * get_deleter( shared_ptr const & p ) BOOST_NOEXCEPT +{ + D *del = boost::detail::basic_get_deleter(p); + + if(del == 0) + { + boost::detail::esft2_deleter_wrapper *del_wrapper = boost::detail::basic_get_deleter(p); +// The following get_deleter method call is fully qualified because +// older versions of gcc (2.95, 3.2.3) fail to compile it when written del_wrapper->get_deleter() + if(del_wrapper) del = del_wrapper->::boost::detail::esft2_deleter_wrapper::get_deleter(); + } + + return del; +} + // atomic access #if !defined(BOOST_SP_NO_ATOMIC_ACCESS) -template inline bool atomic_is_lock_free( shared_ptr const * /*p*/ ) +template inline bool atomic_is_lock_free( shared_ptr const * /*p*/ ) BOOST_NOEXCEPT { return false; } @@ -705,7 +1023,7 @@ template inline bool atomic_compare_exchange_explicit( shared_ptr * template< class T > struct hash; -template< class T > std::size_t hash_value( boost::shared_ptr const & p ) +template< class T > std::size_t hash_value( boost::shared_ptr const & p ) BOOST_NOEXCEPT { return boost::hash< T* >()( p.get() ); } diff --git a/boost/boost/smart_ptr/weak_ptr.hpp b/boost/boost/smart_ptr/weak_ptr.hpp index 2e35583be5..e3e9ad9bde 100644 --- a/boost/boost/smart_ptr/weak_ptr.hpp +++ b/boost/boost/smart_ptr/weak_ptr.hpp @@ -29,23 +29,23 @@ private: public: - typedef T element_type; + typedef typename boost::detail::sp_element< T >::type element_type; - weak_ptr(): px(0), pn() // never throws in 1.30+ + weak_ptr() BOOST_NOEXCEPT : px(0), pn() // never throws in 1.30+ { } // generated copy constructor, assignment, destructor are fine... -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) // ... except in C++0x, move disables the implicit copy - weak_ptr( weak_ptr const & r ): px( r.px ), pn( r.pn ) // never throws + weak_ptr( weak_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) { } - weak_ptr & operator=( weak_ptr const & r ) // never throws + weak_ptr & operator=( weak_ptr const & r ) BOOST_NOEXCEPT { px = r.px; pn = r.pn; @@ -81,11 +81,12 @@ public: weak_ptr( weak_ptr const & r ) #endif - : px(r.lock().get()), pn(r.pn) // never throws + BOOST_NOEXCEPT : px(r.lock().get()), pn(r.pn) { + boost::detail::sp_assert_convertible< Y, T >(); } -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) template #if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) @@ -97,19 +98,21 @@ public: weak_ptr( weak_ptr && r ) #endif - : px( r.lock().get() ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) // never throws + BOOST_NOEXCEPT : px( r.lock().get() ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) + { + boost::detail::sp_assert_convertible< Y, T >(); + r.px = 0; + } + + // for better efficiency in the T == Y case + weak_ptr( weak_ptr && r ) + BOOST_NOEXCEPT : px( r.px ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) { r.px = 0; } // for better efficiency in the T == Y case - weak_ptr( weak_ptr && r ): px( r.px ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) // never throws - { - r.px = 0; - } - - // for better efficiency in the T == Y case - weak_ptr & operator=( weak_ptr && r ) // never throws + weak_ptr & operator=( weak_ptr && r ) BOOST_NOEXCEPT { this_type( static_cast< weak_ptr && >( r ) ).swap( *this ); return *this; @@ -128,24 +131,28 @@ public: weak_ptr( shared_ptr const & r ) #endif - : px( r.px ), pn( r.pn ) // never throws + BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) { + boost::detail::sp_assert_convertible< Y, T >(); } #if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) template - weak_ptr & operator=(weak_ptr const & r) // never throws + weak_ptr & operator=( weak_ptr const & r ) BOOST_NOEXCEPT { + boost::detail::sp_assert_convertible< Y, T >(); + px = r.lock().get(); pn = r.pn; + return *this; } -#if defined( BOOST_HAS_RVALUE_REFS ) +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) template - weak_ptr & operator=( weak_ptr && r ) + weak_ptr & operator=( weak_ptr && r ) BOOST_NOEXCEPT { this_type( static_cast< weak_ptr && >( r ) ).swap( *this ); return *this; @@ -154,26 +161,29 @@ public: #endif template - weak_ptr & operator=(shared_ptr const & r) // never throws + weak_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT { + boost::detail::sp_assert_convertible< Y, T >(); + px = r.px; pn = r.pn; + return *this; } #endif - shared_ptr lock() const // never throws + shared_ptr lock() const BOOST_NOEXCEPT { - return shared_ptr( *this, boost::detail::sp_nothrow_tag() ); + return shared_ptr( *this, boost::detail::sp_nothrow_tag() ); } - long use_count() const // never throws + long use_count() const BOOST_NOEXCEPT { return pn.use_count(); } - bool expired() const // never throws + bool expired() const BOOST_NOEXCEPT { return pn.use_count() == 0; } @@ -183,29 +193,30 @@ public: return pn.empty(); } - void reset() // never throws in 1.30+ + void reset() BOOST_NOEXCEPT // never throws in 1.30+ { this_type().swap(*this); } - void swap(this_type & other) // never throws + void swap(this_type & other) BOOST_NOEXCEPT { std::swap(px, other.px); pn.swap(other.pn); } - void _internal_assign(T * px2, boost::detail::shared_count const & pn2) + template + void _internal_aliasing_assign(weak_ptr const & r, element_type * px2) { px = px2; - pn = pn2; + pn = r.pn; } - template bool owner_before( weak_ptr const & rhs ) const + template bool owner_before( weak_ptr const & rhs ) const BOOST_NOEXCEPT { return pn < rhs.pn; } - template bool owner_before( shared_ptr const & rhs ) const + template bool owner_before( shared_ptr const & rhs ) const BOOST_NOEXCEPT { return pn < rhs.pn; } @@ -222,17 +233,17 @@ private: #endif - T * px; // contained pointer + element_type * px; // contained pointer boost::detail::weak_count pn; // reference counter }; // weak_ptr -template inline bool operator<(weak_ptr const & a, weak_ptr const & b) +template inline bool operator<(weak_ptr const & a, weak_ptr const & b) BOOST_NOEXCEPT { return a.owner_before( b ); } -template void swap(weak_ptr & a, weak_ptr & b) +template void swap(weak_ptr & a, weak_ptr & b) BOOST_NOEXCEPT { a.swap(b); } diff --git a/boost/boost/static_assert.hpp b/boost/boost/static_assert.hpp index 9fe9bc0c0f..0bc3ef66ff 100644 --- a/boost/boost/static_assert.hpp +++ b/boost/boost/static_assert.hpp @@ -17,7 +17,7 @@ #include #include -#ifndef BOOST_NO_STATIC_ASSERT +#ifndef BOOST_NO_CXX11_STATIC_ASSERT # define BOOST_STATIC_ASSERT_MSG( B, Msg ) static_assert(B, Msg) #else # define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B ) @@ -44,7 +44,7 @@ # define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) #endif -#ifndef BOOST_NO_STATIC_ASSERT +#ifndef BOOST_NO_CXX11_STATIC_ASSERT # define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) #else @@ -131,7 +131,7 @@ template struct static_assert_test{}; enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \ = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) } #endif -#endif // defined(BOOST_NO_STATIC_ASSERT) +#endif // defined(BOOST_NO_CXX11_STATIC_ASSERT) #endif // BOOST_STATIC_ASSERT_HPP diff --git a/boost/boost/swap.hpp b/boost/boost/swap.hpp new file mode 100644 index 0000000000..dfc11f059d --- /dev/null +++ b/boost/boost/swap.hpp @@ -0,0 +1,12 @@ +// Copyright (C) 2007 Joseph Gauterin +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_SWAP_HPP +#define BOOST_SWAP_HPP + +#include "boost/utility/swap.hpp" + +#endif diff --git a/boost/boost/throw_exception.hpp b/boost/boost/throw_exception.hpp index a73acb671b..c1bff4379f 100644 --- a/boost/boost/throw_exception.hpp +++ b/boost/boost/throw_exception.hpp @@ -1,5 +1,11 @@ -#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED -#define BOOST_THROW_EXCEPTION_HPP_INCLUDED +#ifndef UUID_AA15E74A856F11E08B8D93F24824019B +#define UUID_AA15E74A856F11E08B8D93F24824019B +#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma GCC system_header +#endif +#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma warning(push,1) +#endif // MS compatible compilers support #pragma once @@ -79,7 +85,7 @@ template BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const set_info( set_info( set_info( - boost::enable_error_info(x), + enable_error_info(x), throw_function(current_function)), throw_file(file)), throw_line(line))); @@ -88,4 +94,7 @@ template BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const #endif } // namespace boost -#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED +#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma warning(pop) +#endif +#endif diff --git a/boost/boost/type_traits/add_lvalue_reference.hpp b/boost/boost/type_traits/add_lvalue_reference.hpp index 41563728f4..1d7579476a 100644 --- a/boost/boost/type_traits/add_lvalue_reference.hpp +++ b/boost/boost/type_traits/add_lvalue_reference.hpp @@ -15,7 +15,7 @@ namespace boost{ BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename boost::add_reference::type) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&) #endif diff --git a/boost/boost/type_traits/add_reference.hpp b/boost/boost/type_traits/add_reference.hpp index eb4f9b1631..f926a53b70 100644 --- a/boost/boost/type_traits/add_reference.hpp +++ b/boost/boost/type_traits/add_reference.hpp @@ -62,7 +62,7 @@ struct add_reference_rvalue_layer typedef T& type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct add_reference_rvalue_layer { diff --git a/boost/boost/type_traits/add_rvalue_reference.hpp b/boost/boost/type_traits/add_rvalue_reference.hpp index f0e9925a34..92c2c3817a 100644 --- a/boost/boost/type_traits/add_rvalue_reference.hpp +++ b/boost/boost/type_traits/add_rvalue_reference.hpp @@ -21,7 +21,7 @@ //----------------------------------------------------------------------------// // // // C++03 implementation of // -// 20.7.6.2 Reference modifications [meta.trans.ref] // +// 20.9.7.2 Reference modifications [meta.trans.ref] // // Written by Vicente J. Botet Escriba // // // // If T names an object or function type then the member typedef type @@ -39,7 +39,7 @@ namespace type_traits_detail { struct add_rvalue_reference_helper { typedef T type; }; -#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) template struct add_rvalue_reference_helper { @@ -49,9 +49,9 @@ namespace type_traits_detail { template struct add_rvalue_reference_imp - { + { typedef typename boost::type_traits_detail::add_rvalue_reference_helper - ::value && !is_reference::value) >::type type; + ::value == false && is_reference::value == false) >::type type; }; } diff --git a/boost/boost/type_traits/common_type.hpp b/boost/boost/type_traits/common_type.hpp index 27396888de..00129d1ecb 100644 --- a/boost/boost/type_traits/common_type.hpp +++ b/boost/boost/type_traits/common_type.hpp @@ -19,18 +19,18 @@ #endif //----------------------------------------------------------------------------// -#if defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY) +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY) #define BOOST_COMMON_TYPE_ARITY 3 #endif //----------------------------------------------------------------------------// -#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT) +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT) #define BOOST_TYPEOF_SILENT #include // boost wonders never cease! #endif //----------------------------------------------------------------------------// -#ifndef BOOST_NO_STATIC_ASSERT +#ifndef BOOST_NO_CXX11_STATIC_ASSERT #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG) #elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) #include @@ -42,11 +42,11 @@ #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND) #endif -#if !defined(BOOST_NO_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) +#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) #define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type" #endif -#if defined(BOOST_NO_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) +#if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) #include #include #endif @@ -57,7 +57,7 @@ //----------------------------------------------------------------------------// // // // C++03 implementation of // -// 20.6.7 Other transformations [meta.trans.other] // +// 20.9.7.6 Other transformations [meta.trans.other] // // Written by Howard Hinnant // // Adapted for Boost by Beman Dawes, Vicente Botet and Jeffrey Hellrung // // // @@ -66,7 +66,7 @@ namespace boost { // prototype -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type; #else // or no specialization @@ -81,7 +81,7 @@ namespace boost { // 1 arg template -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) struct common_type #else struct common_type @@ -107,7 +107,7 @@ namespace type_traits_detail { static typename add_rvalue_reference::type declval_U(); // workaround gcc bug; not required by std static typename add_rvalue_reference::type declval_b(); -#if !defined(BOOST_NO_DECLTYPE) +#if !defined(BOOST_NO_CXX11_DECLTYPE) public: typedef decltype(declval() ? declval() : declval()) type; #elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) @@ -134,7 +134,7 @@ namespace type_traits_detail { }; } -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type #else @@ -146,7 +146,7 @@ namespace type_traits_detail { // 3 or more args -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type { public: diff --git a/boost/boost/type_traits/config.hpp b/boost/boost/type_traits/config.hpp index 94f13769a4..7934454299 100644 --- a/boost/boost/type_traits/config.hpp +++ b/boost/boost/type_traits/config.hpp @@ -16,7 +16,7 @@ #include // -// whenever we have a conversion function with elipses +// whenever we have a conversion function with ellipses // it needs to be declared __cdecl to suppress compiler // warnings from MS and Borland compilers (this *must* // appear before we include is_same.hpp below): diff --git a/boost/boost/type_traits/decay.hpp b/boost/boost/type_traits/decay.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/detail/bool_trait_def.hpp b/boost/boost/type_traits/detail/bool_trait_def.hpp index 0935c60727..e3c7774e39 100644 --- a/boost/boost/type_traits/detail/bool_trait_def.hpp +++ b/boost/boost/type_traits/detail/bool_trait_def.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2011-10-09 18:28:33 -0400 (Sun, 09 Oct 2011) $ +// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $ // $Revision: 74865 $ #include diff --git a/boost/boost/type_traits/detail/bool_trait_undef.hpp b/boost/boost/type_traits/detail/bool_trait_undef.hpp index 6daba04cfe..008febe790 100644 --- a/boost/boost/type_traits/detail/bool_trait_undef.hpp +++ b/boost/boost/type_traits/detail/bool_trait_undef.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2011-10-09 18:28:33 -0400 (Sun, 09 Oct 2011) $ +// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $ // $Revision: 74865 $ #undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL diff --git a/boost/boost/type_traits/detail/common_type_imp.hpp b/boost/boost/type_traits/detail/common_type_imp.hpp index dd530ca88f..84de8b4125 100644 --- a/boost/boost/type_traits/detail/common_type_imp.hpp +++ b/boost/boost/type_traits/detail/common_type_imp.hpp @@ -92,7 +92,7 @@ struct is_integral_or_enum< bool > * struct make_signed_soft * * These metafunction are identical to make_unsigned and make_signed, - * respetively, except for special-casing bool. + * respectively, except for special-casing bool. ******************************************************************************/ template< class T > diff --git a/boost/boost/type_traits/detail/is_function_ptr_tester.hpp b/boost/boost/type_traits/detail/is_function_ptr_tester.hpp index c1a3c6a5f8..2ab49a39af 100644 --- a/boost/boost/type_traits/detail/is_function_ptr_tester.hpp +++ b/boost/boost/type_traits/detail/is_function_ptr_tester.hpp @@ -26,7 +26,7 @@ namespace boost { namespace type_traits { -// Note it is acceptible to use ellipsis here, since the argument will +// Note it is acceptable to use ellipsis here, since the argument will // always be a pointer type of some sort (JM 2005/06/04): no_type BOOST_TT_DECL is_function_ptr_tester(...); diff --git a/boost/boost/type_traits/detail/size_t_trait_def.hpp b/boost/boost/type_traits/detail/size_t_trait_def.hpp index 23deeaff8d..3be4f70af4 100644 --- a/boost/boost/type_traits/detail/size_t_trait_def.hpp +++ b/boost/boost/type_traits/detail/size_t_trait_def.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2011-04-25 08:26:48 -0400 (Mon, 25 Apr 2011) $ +// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $ // $Revision: 71481 $ #include diff --git a/boost/boost/type_traits/detail/size_t_trait_undef.hpp b/boost/boost/type_traits/detail/size_t_trait_undef.hpp index 06a176dc8e..967fd91631 100644 --- a/boost/boost/type_traits/detail/size_t_trait_undef.hpp +++ b/boost/boost/type_traits/detail/size_t_trait_undef.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $ // $Revision: 24874 $ #undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1 diff --git a/boost/boost/type_traits/detail/type_trait_def.hpp b/boost/boost/type_traits/detail/type_trait_def.hpp index 3903f7f277..224f84887d 100644 --- a/boost/boost/type_traits/detail/type_trait_def.hpp +++ b/boost/boost/type_traits/detail/type_trait_def.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2011-04-25 08:26:48 -0400 (Mon, 25 Apr 2011) $ +// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $ // $Revision: 71481 $ #include diff --git a/boost/boost/type_traits/detail/type_trait_undef.hpp b/boost/boost/type_traits/detail/type_trait_undef.hpp index 9403b9bde1..c4f14ff8d1 100644 --- a/boost/boost/type_traits/detail/type_trait_undef.hpp +++ b/boost/boost/type_traits/detail/type_trait_undef.hpp @@ -8,7 +8,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // $Source$ -// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $ // $Revision: 24874 $ #undef BOOST_TT_AUX_TYPE_TRAIT_DEF1 diff --git a/boost/boost/type_traits/floating_point_promotion.hpp b/boost/boost/type_traits/floating_point_promotion.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/integral_promotion.hpp b/boost/boost/type_traits/integral_promotion.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/intrinsics.hpp b/boost/boost/type_traits/intrinsics.hpp index d47b33ee47..1799240038 100644 --- a/boost/boost/type_traits/intrinsics.hpp +++ b/boost/boost/type_traits/intrinsics.hpp @@ -79,8 +79,10 @@ # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif -#if defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215) +#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ + || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) # include +# include # define BOOST_IS_UNION(T) __is_union(T) # define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) @@ -97,7 +99,7 @@ # define BOOST_IS_ABSTRACT(T) __is_abstract(T) # define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) # define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || is_same::value) && !__is_abstract(U)) +# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same::value && !is_function::value)) && !__is_abstract(U)) # define BOOST_IS_ENUM(T) __is_enum(T) // This one doesn't quite always do the right thing: // # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) @@ -124,6 +126,7 @@ #endif #if defined(BOOST_CLANG) && defined(__has_feature) +# include # include # include # include @@ -131,10 +134,10 @@ # if __has_feature(is_union) # define BOOST_IS_UNION(T) __is_union(T) # endif -# if __has_feature(is_pod) && defined(_LIBCPP_VERSION) +# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod) # define BOOST_IS_POD(T) __is_pod(T) # endif -# if __has_feature(is_empty) && defined(_LIBCPP_VERSION) +# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty) # define BOOST_IS_EMPTY(T) __is_empty(T) # endif # if __has_feature(has_trivial_constructor) @@ -185,7 +188,7 @@ # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) +#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) # include # include # include @@ -286,3 +289,4 @@ + diff --git a/boost/boost/type_traits/is_abstract.hpp b/boost/boost/type_traits/is_abstract.hpp index 09fdf33c45..d88c143995 100644 --- a/boost/boost/type_traits/is_abstract.hpp +++ b/boost/boost/type_traits/is_abstract.hpp @@ -39,7 +39,7 @@ // At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1. // - Adapted and added into Boost.Serialization library by Robert Ramey // (starting with submission #10). -// - Jan 2004: GCC 3.4 fixed to suport DR337 (Giovanni Bajo). +// - Jan 2004: GCC 3.4 fixed to support DR337 (Giovanni Bajo). // - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek). // - Nov 2004: Christoph Ludwig found that the implementation did not work with // template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig diff --git a/boost/boost/type_traits/is_array.hpp b/boost/boost/type_traits/is_array.hpp index e9e820a3d6..91c0f156db 100644 --- a/boost/boost/type_traits/is_array.hpp +++ b/boost/boost/type_traits/is_array.hpp @@ -8,7 +8,7 @@ // See http://www.boost.org/libs/type_traits for most recent version including documentation. -// Some fixes for is_array are based on a newgroup posting by Jonathan Lundquist. +// Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist. #ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED diff --git a/boost/boost/type_traits/is_complex.hpp b/boost/boost/type_traits/is_complex.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/is_const.hpp b/boost/boost/type_traits/is_const.hpp index f24b71a539..0c7da4a2f5 100644 --- a/boost/boost/type_traits/is_const.hpp +++ b/boost/boost/type_traits/is_const.hpp @@ -64,7 +64,7 @@ struct is_const_rvalue_filter BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp::is_const); #endif }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct is_const_rvalue_filter { diff --git a/boost/boost/type_traits/is_convertible.hpp b/boost/boost/type_traits/is_convertible.hpp index 0d42c469b3..3eccadc588 100644 --- a/boost/boost/type_traits/is_convertible.hpp +++ b/boost/boost/type_traits/is_convertible.hpp @@ -17,17 +17,17 @@ #include #include #include -#include #include #include #include #ifndef BOOST_NO_IS_ABSTRACT #include #endif +#include #include +#include #if defined(__MWERKS__) -#include #include #endif @@ -40,7 +40,7 @@ namespace boost { #ifndef BOOST_IS_CONVERTIBLE -// is one type convertable to another? +// is one type convertible to another? // // there are multiple versions of the is_convertible // template, almost every compiler seems to require its @@ -69,7 +69,7 @@ struct does_conversion_exist { static no_type BOOST_TT_DECL _m_check(...); static yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + static typename add_lvalue_reference::type _m_from; enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) }; }; }; @@ -107,7 +107,7 @@ struct is_convertible_impl static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T); }; - static typename add_rvalue_reference::type _m_from; + static typename add_lvalue_reference::type _m_from; static bool const value = sizeof( checker::_m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type); #pragma option pop @@ -120,6 +120,8 @@ struct is_convertible_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); template any_conversion(T&); }; @@ -132,9 +134,18 @@ template struct checker template struct is_convertible_basic_impl { - static typename add_rvalue_reference::type _m_from; - static bool const value = sizeof( boost::detail::checker::_m_check(_m_from, 0) ) + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))) + static bool const value = + sizeof( boost::detail::checker::_m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type); +#else + static bool const value = + sizeof( boost::detail::checker::_m_check(_m_from, 0) ) + == sizeof(::boost::type_traits::yes_type); +#endif }; #elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ @@ -152,6 +163,8 @@ struct is_convertible_basic_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); // we need this constructor to catch references to functions // (which can not be cv-qualified): template any_conversion(T&); @@ -162,11 +175,19 @@ struct is_convertible_basic_impl { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; #elif defined(__DMC__) @@ -174,6 +195,8 @@ struct is_convertible_basic_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); // we need this constructor to catch references to functions // (which can not be cv-qualified): template any_conversion(T&); @@ -186,13 +209,21 @@ struct is_convertible_basic_impl template static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; // Static constants sometime cause the conversion of _m_from to To to be // called. This doesn't happen with an enum. +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + enum { value = + sizeof( _m_check(static_cast(_m_from), 0, 0) ) == sizeof(::boost::type_traits::yes_type) + }; +#else enum { value = sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type) }; +#endif }; #elif defined(__MWERKS__) @@ -209,6 +240,9 @@ struct is_convertible_basic_impl_aux; struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); + template any_conversion(T&); }; template @@ -216,11 +250,19 @@ struct is_convertible_basic_impl_aux { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; template @@ -228,10 +270,18 @@ struct is_convertible_basic_impl_aux { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; template @@ -243,7 +293,6 @@ struct is_convertible_basic_impl: {}; #else - // // This version seems to work pretty well for a wide spectrum of compilers, // however it does rely on undefined behaviour by passing UDT's through (...). @@ -253,7 +302,9 @@ struct is_convertible_basic_impl { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; #ifdef BOOST_MSVC #pragma warning(push) #pragma warning(disable:4244) @@ -261,9 +312,15 @@ struct is_convertible_basic_impl #pragma warning(disable:6334) #endif #endif +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) ); +#endif #ifdef BOOST_MSVC #pragma warning(pop) #endif @@ -276,15 +333,17 @@ struct is_convertible_basic_impl template struct is_convertible_impl { - typedef typename add_reference::type ref_type; enum { value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< - ::boost::detail::is_convertible_basic_impl::value, + ::boost::detail::is_convertible_basic_impl::value, ::boost::is_void::value >::value, ::boost::type_traits::ice_not< ::boost::is_array::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_function::value >::value >::value) }; }; @@ -292,15 +351,17 @@ struct is_convertible_impl template struct is_convertible_impl { - typedef typename add_reference::type ref_type; BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< - ::boost::detail::is_convertible_basic_impl::value, + ::boost::detail::is_convertible_basic_impl::value, ::boost::is_void::value >::value, ::boost::type_traits::ice_not< ::boost::is_array::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_function::value >::value >::value) ); diff --git a/boost/boost/type_traits/is_function.hpp b/boost/boost/type_traits/is_function.hpp index 2cb1bb92d6..cd80e740f1 100644 --- a/boost/boost/type_traits/is_function.hpp +++ b/boost/boost/type_traits/is_function.hpp @@ -83,6 +83,11 @@ struct is_function_impl template struct is_function_impl : public false_type {}; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +template +struct is_function_impl : public false_type +{}; +#endif #endif #endif @@ -95,7 +100,7 @@ struct is_function_impl : public false_type BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T)) #else BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl::value) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false) #endif #endif diff --git a/boost/boost/type_traits/is_integral.hpp b/boost/boost/type_traits/is_integral.hpp index 99420a9912..4ca9734016 100644 --- a/boost/boost/type_traits/is_integral.hpp +++ b/boost/boost/type_traits/is_integral.hpp @@ -17,7 +17,7 @@ namespace boost { //* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3) -// as an extention we include long long, as this is likely to be added to the +// as an extension we include long long, as this is likely to be added to the // standard at a later date #if defined( __CODEGEARC__ ) BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T)) @@ -68,6 +68,11 @@ BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) #endif + +#ifdef BOOST_HAS_INT128 +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::int128_type,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::uint128_type,true) +#endif #endif // non-CodeGear implementation diff --git a/boost/boost/type_traits/is_rvalue_reference.hpp b/boost/boost/type_traits/is_rvalue_reference.hpp index cac2ee0903..93cd0bf187 100644 --- a/boost/boost/type_traits/is_rvalue_reference.hpp +++ b/boost/boost/type_traits/is_rvalue_reference.hpp @@ -17,7 +17,7 @@ namespace boost { BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true) #endif diff --git a/boost/boost/type_traits/is_virtual_base_of.hpp b/boost/boost/type_traits/is_virtual_base_of.hpp index ffb021e69e..f57cb61876 100644 --- a/boost/boost/type_traits/is_virtual_base_of.hpp +++ b/boost/boost/type_traits/is_virtual_base_of.hpp @@ -23,7 +23,7 @@ namespace detail { #ifdef BOOST_MSVC #pragma warning( push ) #pragma warning( disable : 4584 4250) -#elif defined __GNUC__ +#elif defined(__GNUC__) && (__GNUC__ >= 4) #pragma GCC system_header #endif diff --git a/boost/boost/type_traits/is_volatile.hpp b/boost/boost/type_traits/is_volatile.hpp index 863747da6e..c921c9ef3e 100644 --- a/boost/boost/type_traits/is_volatile.hpp +++ b/boost/boost/type_traits/is_volatile.hpp @@ -51,7 +51,7 @@ struct is_volatile_rval_filter BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp::is_volatile); #endif }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/boost/boost/type_traits/make_signed.hpp b/boost/boost/type_traits/make_signed.hpp old mode 100755 new mode 100644 index 51cfd95ca1..7deb855572 --- a/boost/boost/type_traits/make_signed.hpp +++ b/boost/boost/type_traits/make_signed.hpp @@ -72,7 +72,15 @@ struct make_signed_imp is_same, long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::long_long_type), + boost::long_long_type, + boost::int128_type + >::type +#else boost::long_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) __int64 #else @@ -96,7 +104,15 @@ struct make_signed_imp sizeof(t_no_cv) == sizeof(unsigned long), long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::long_long_type), + boost::long_long_type, + boost::int128_type + >::type +#else boost::long_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) __int64 #else diff --git a/boost/boost/type_traits/make_unsigned.hpp b/boost/boost/type_traits/make_unsigned.hpp old mode 100755 new mode 100644 index 54f9f665b3..7e2fcdc453 --- a/boost/boost/type_traits/make_unsigned.hpp +++ b/boost/boost/type_traits/make_unsigned.hpp @@ -72,7 +72,15 @@ struct make_unsigned_imp is_same, unsigned long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::ulong_long_type), + boost::ulong_long_type, + boost::uint128_type + >::type +#else boost::ulong_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) unsigned __int64 #else @@ -96,7 +104,15 @@ struct make_unsigned_imp sizeof(t_no_cv) == sizeof(unsigned long), unsigned long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::ulong_long_type), + boost::ulong_long_type, + boost::uint128_type + >::type +#else boost::ulong_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) unsigned __int64 #else diff --git a/boost/boost/type_traits/msvc/remove_all_extents.hpp b/boost/boost/type_traits/msvc/remove_all_extents.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_bounds.hpp b/boost/boost/type_traits/msvc/remove_bounds.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_const.hpp b/boost/boost/type_traits/msvc/remove_const.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_cv.hpp b/boost/boost/type_traits/msvc/remove_cv.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_extent.hpp b/boost/boost/type_traits/msvc/remove_extent.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_pointer.hpp b/boost/boost/type_traits/msvc/remove_pointer.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_reference.hpp b/boost/boost/type_traits/msvc/remove_reference.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/remove_volatile.hpp b/boost/boost/type_traits/msvc/remove_volatile.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/msvc/typeof.hpp b/boost/boost/type_traits/msvc/typeof.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/promote.hpp b/boost/boost/type_traits/promote.hpp old mode 100755 new mode 100644 diff --git a/boost/boost/type_traits/remove_const.hpp b/boost/boost/type_traits/remove_const.hpp index f4d1739ae4..5f957e9787 100644 --- a/boost/boost/type_traits/remove_const.hpp +++ b/boost/boost/type_traits/remove_const.hpp @@ -54,7 +54,7 @@ struct remove_const_impl >::type type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/boost/boost/type_traits/remove_cv.hpp b/boost/boost/type_traits/remove_cv.hpp index ee6d8f9691..7478c207eb 100644 --- a/boost/boost/type_traits/remove_cv.hpp +++ b/boost/boost/type_traits/remove_cv.hpp @@ -37,7 +37,7 @@ struct rvalue_ref_filter_rem_cv typedef typename boost::detail::cv_traits_imp::unqualified_type type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/boost/boost/type_traits/remove_reference.hpp b/boost/boost/type_traits/remove_reference.hpp index f4530861c1..19a55b738f 100644 --- a/boost/boost/type_traits/remove_reference.hpp +++ b/boost/boost/type_traits/remove_reference.hpp @@ -34,7 +34,7 @@ struct remove_rvalue_ref { typedef T type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct remove_rvalue_ref { diff --git a/boost/boost/type_traits/remove_volatile.hpp b/boost/boost/type_traits/remove_volatile.hpp index 073a2a3ecc..98da5cfc1f 100644 --- a/boost/boost/type_traits/remove_volatile.hpp +++ b/boost/boost/type_traits/remove_volatile.hpp @@ -57,7 +57,7 @@ struct remove_volatile_impl // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: // -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct remove_volatile_impl { diff --git a/boost/boost/utility.hpp b/boost/boost/utility.hpp index b909f296b2..82177c8b47 100644 --- a/boost/boost/utility.hpp +++ b/boost/boost/utility.hpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/boost/boost/utility/declval.hpp b/boost/boost/utility/declval.hpp index 41ec3dcc69..d74610c584 100644 --- a/boost/boost/utility/declval.hpp +++ b/boost/boost/utility/declval.hpp @@ -13,6 +13,7 @@ //----------------------------------------------------------------------------// #include +//#include //----------------------------------------------------------------------------// // // @@ -36,9 +37,13 @@ namespace boost { +//#if !defined(BOOST_NO_RVALUE_REFERENCES) template - typename add_rvalue_reference::type declval(); //noexcept; // as unevaluated operand - + typename add_rvalue_reference::type declval() BOOST_NOEXCEPT; // as unevaluated operand +//#else +// template +// typename add_lvalue_reference::type declval() BOOST_NOEXCEPT; // as unevaluated operand +//#endif } // namespace boost #endif // BOOST_TYPE_TRAITS_EXT_DECLVAL__HPP diff --git a/boost/boost/utility/identity_type.hpp b/boost/boost/utility/identity_type.hpp new file mode 100644 index 0000000000..4a1f6c4de5 --- /dev/null +++ b/boost/boost/utility/identity_type.hpp @@ -0,0 +1,46 @@ + +// Copyright (C) 2009-2012 Lorenzo Caminiti +// Distributed under the Boost Software License, Version 1.0 +// (see accompanying file LICENSE_1_0.txt or a copy at +// http://www.boost.org/LICENSE_1_0.txt) +// Home at http://www.boost.org/libs/utility/identity_type + +/** @file +Wrap type expressions with round parenthesis so they can be passed to macros +even if they contain commas. +*/ + +#ifndef BOOST_IDENTITY_TYPE_HPP_ +#define BOOST_IDENTITY_TYPE_HPP_ + +#include + +/** +@brief This macro allows to wrap the specified type expression within extra +round parenthesis so the type can be passed as a single macro parameter even if +it contains commas (not already wrapped within round parenthesis). + +@Params +@Param{parenthesized_type, +The type expression to be passed as macro parameter wrapped by a single set +of round parenthesis (...). +This type expression can contain an arbitrary number of commas. +} +@EndParams + +This macro works on any C++03 compiler (it does not use variadic macros). + +This macro must be prefixed by typename when used within templates. +Note that the compiler will not be able to automatically determine function +template parameters when they are wrapped with this macro (these parameters +need to be explicitly specified when calling the function template). + +On some compilers (like GCC), using this macro on abstract types requires to +add and remove a reference to the specified type. +*/ +#define BOOST_IDENTITY_TYPE(parenthesized_type) \ + /* must NOT prefix this with `::` to work with parenthesized syntax */ \ + boost::function_traits< void parenthesized_type >::arg1_type + +#endif // #include guard + diff --git a/boost/boost/version.hpp b/boost/boost/version.hpp index 0055f1ecb0..e85ed123a4 100644 --- a/boost/boost/version.hpp +++ b/boost/boost/version.hpp @@ -19,7 +19,7 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 104900 +#define BOOST_VERSION 105300 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,9 +27,6 @@ // number, y is the minor version number, and z is the patch level if not 0. // This is used by to select which library version to link to. -#define BOOST_LIB_VERSION "1_49" +#define BOOST_LIB_VERSION "1_53" #endif - - - diff --git a/boost/libs/regex/src/fileiter.cpp b/boost/libs/regex/src/fileiter.cpp index 38c0d2c3a5..780a12f164 100644 --- a/boost/libs/regex/src/fileiter.cpp +++ b/boost/libs/regex/src/fileiter.cpp @@ -19,6 +19,7 @@ #define BOOST_REGEX_SOURCE +#include #include #include #include @@ -876,6 +877,7 @@ _fi_find_handle _fi_FindFirstFile(const char* lpFileName, _fi_find_data* lpFindF { if(_fi_FindNextFile(dat, lpFindFileData)) return dat; + closedir(h); } delete dat; return 0; diff --git a/boost/libs/regex/src/icu.cpp b/boost/libs/regex/src/icu.cpp old mode 100755 new mode 100644 diff --git a/boost/libs/regex/src/posix_api.cpp b/boost/libs/regex/src/posix_api.cpp index abafd8f231..e59c19ea6e 100644 --- a/boost/libs/regex/src/posix_api.cpp +++ b/boost/libs/regex/src/posix_api.cpp @@ -18,6 +18,7 @@ #define BOOST_REGEX_SOURCE +#include #include #include #include diff --git a/boost/libs/regex/src/regex.cpp b/boost/libs/regex/src/regex.cpp index 27ac43cc09..ea20a06b54 100644 --- a/boost/libs/regex/src/regex.cpp +++ b/boost/libs/regex/src/regex.cpp @@ -19,6 +19,7 @@ #define BOOST_REGEX_SOURCE +#include #include #include #include diff --git a/boost/libs/regex/src/regex_raw_buffer.cpp b/boost/libs/regex/src/regex_raw_buffer.cpp index 7a8de8033d..f75f0a516e 100644 --- a/boost/libs/regex/src/regex_raw_buffer.cpp +++ b/boost/libs/regex/src/regex_raw_buffer.cpp @@ -18,6 +18,7 @@ #define BOOST_REGEX_SOURCE +#include #include #include #include @@ -45,7 +46,8 @@ void BOOST_REGEX_CALL raw_storage::resize(size_type n) // allocate and copy data: register pointer ptr = static_cast(::operator new(newsize)); BOOST_REGEX_NOEH_ASSERT(ptr) - std::memcpy(ptr, start, datasize); + if(start) + std::memcpy(ptr, start, datasize); // get rid of old buffer: ::operator delete(start); diff --git a/boost/libs/regex/src/static_mutex.cpp b/boost/libs/regex/src/static_mutex.cpp old mode 100755 new mode 100644 diff --git a/boost/libs/regex/src/usinstances.cpp b/boost/libs/regex/src/usinstances.cpp old mode 100755 new mode 100644 diff --git a/boost/libs/regex/src/wc_regex_traits.cpp b/boost/libs/regex/src/wc_regex_traits.cpp old mode 100755 new mode 100644 diff --git a/boost/libs/signals/src/named_slot_map.cpp b/boost/libs/signals/src/named_slot_map.cpp index 1ddde63d8d..ac9a292fae 100644 --- a/boost/libs/signals/src/named_slot_map.cpp +++ b/boost/libs/signals/src/named_slot_map.cpp @@ -24,7 +24,7 @@ typedef slot_container_type::iterator group_iterator; typedef slot_container_type::const_iterator const_group_iterator; -#if BOOST_WORKAROUND(_MSC_VER, <= 1600) +#if BOOST_WORKAROUND(_MSC_VER, <= 1700) void named_slot_map_iterator::decrement() { assert(false); } void named_slot_map_iterator::advance(difference_type) { assert(false); } #endif @@ -102,7 +102,7 @@ void named_slot_map::disconnect(const stored_group& name) i->first.disconnect(); i = next; } - groups.erase(group); + groups.erase((const_group_iterator) group); } } @@ -125,7 +125,7 @@ void named_slot_map::remove_disconnected_slots() } // Clear out empty groups - if (empty(g)) groups.erase(g++); + if (empty(g)) groups.erase((const_group_iterator) g++); else ++g; } }