Ticket #3594: property_tree.diff

File property_tree.diff, 1.5 KB (added by rwebb <richard.webb@…>, 13 years ago)
  • boost/property_tree/detail/ptree_implementation.hpp

     
    2222    {
    2323        struct by_name {};
    2424        // The actual child container.
     25
     26#if defined(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS) || \
     27    (defined(BOOST_MSVC) && ((BOOST_MSVC < 1300) || \
     28        (_MSC_FULL_VER == 160020506 || _MSC_FULL_VER == 160021003))) || \
     29    (defined(BOOST_INTEL_CXX_VERSION) && \
     30        (defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 700)))
     31
     32        BOOST_STATIC_CONSTANT(unsigned, from_offset = offsetof(value_type, first));
     33
     34                typedef multi_index_container<value_type,
     35            multi_index::indexed_by<
     36                multi_index::sequenced<>,
     37                multi_index::ordered_non_unique<multi_index::tag<by_name>,
     38                    multi_index::member_offset<value_type, const key_type,
     39                                        from_offset>,
     40                    key_compare
     41                >
     42            >
     43        > base_container;
     44#else
     45
    2546        typedef multi_index_container<value_type,
    2647            multi_index::indexed_by<
    2748                multi_index::sequenced<>,
     
    3253                >
    3354            >
    3455        > base_container;
     56#endif
     57
    3558        // The by-name lookup index.
    3659        typedef typename base_container::template index<by_name>::type
    3760            by_name_index;