Boost logo

Boost :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-02-23 23:13:33

Attached patches for 3 regex library headers for the issues with regex
library test concept_check on Tru64/cxx and HP-UX/aCC6 described in:


        . concepts.hpp_patch (necessary for Tru64 and VMS)
        . concept_archetype.hpp_patch (necessary for HP-UX)
        . regex_traits.hpp_patch (necessary for HP-UX)

. The patch for concepts.hpp adds char_type to the explicit specialization
  of template std::char_traits on type boost::char_architype. char_type is
  necessary for the platforms using Rogue Wave V2.0 (Tru64 and AlphaVMS)
  and RW V3.0 (iVMS).

  While it is not necessary for HP-UX/aCC6 using RW V2.2, it does not
  break it. Adding char_type also does not break compilation on HP-UX
  with Gnu libstdc++ and STLport.

  In the patch, char_type is conditionalized as the following:

   template<> struct char_traits<boost::char_architype>{
#if defined(__DECCXX) && BOOST_WORKAROUND(_RWSTD_VER, >= 0x0203)
     typedef boost::char_architype char_type;

  so it affects only Tru64, AlphaVMS and iVMS. Actually, I don't think
  that any conditionalization is necessary because adding this typedef
  does not seem to do any harm.

  If this patch is applied, regex library test concept_check can be removed
  from explicit-failures-markup.xml for toolset "hp_cxx-71_006_tru64" (this
  is release platform).

. The patch for concept_archetype.hpp adds overload for
  std::__iterator_category returning __unknown_iterator_tag.

  This overload allows std::basic_string to be constructed, as John Maddock
  put it in:


  from "iterator types it doesn't know about".

  This patch is necessary for RW V2.2. I've conditionalized it with:

#if defined(__HP_aCC) && BOOST_WORKAROUND(_RWSTD_VER, == 0x02020100)

  but I think, that 'defined(__HP_aCC)' can be omitted because this is a
  pure Rogue Wave library issue. I conditionalized it the way I did out
  of fear of breaking other platforms using the RW library that I cannot
  test the patch on.

. The patch for regex_traits.hpp changes aCC - specific conditionalization
  which is wrong for aCC6. I have no idea why this conditionalization was
  necessary in the first place, but I did not remove it: I just restricted
  it to pre-aCC6 compilers.

With patches for concept_archetype.hpp and regex_traits.hpp, regex
library test concept_check passes on HP-UX. Also, tr1 library tests
std_test_regex and test_regex that were previously failing, now pass.

If the patches for concept_archetype.hpp and regex_traits.hpp are
acceptable, please, apply them. If they are applied to HEAD only,
please, mark regex library test concept_check and tr1 library tests
std_test_regex and test_regex expected failures in 1.34 on HP-UX/aCC6
(toolset "acc").


Boost list run by bdawes at, gregod at, cpdaniel at, john at