Re: [Boost-bugs] [Boost C++ Libraries] #883: errors when build with Apache stdcxx

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #883: errors when build with Apache stdcxx
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2007-09-10 10:46:30


#883: errors when build with Apache stdcxx
----------------------------+-----------------------------------------------
  Reporter: farid_zaripov | Owner: johnmaddock
      Type: Bugs | Status: closed
 Milestone: | Component: regex
   Version: None | Severity: Problem
Resolution: fixed | Keywords:
----------------------------+-----------------------------------------------
Changes (by johnmaddock):

  * status: assigned => closed
  * resolution: Accepted => fixed
  * severity: => Problem

Old description:

> {{{
> I have been working on the Apache C++ Standard Library project (STDCXX):
> http://incubator.apache.org/stdcxx/
>
> I've trying to compile the boost library with stdcxx.
>
> The details can be found here:
> http://mail-archives.apache.org/mod_mbox/incubator-stdcxx-
> dev/200704.mbox/%
> 3c7BDB2168BEAEF14C98F1901FD2DE64386573EB_at_[hidden]%3e
>
> Boost version: 1.33.1
> STDCXX version: 4.2
>
> I've got the following errors in boost/regex/v4/regex_workaround.hpp and
> boost/regex/v4/fileiter.hpp:
>

>
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
> C2653: 'stdext' : is not a class or namespace name
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_replace.hpp(44) : see
> reference to function template instantiation 'OutputIterator
> boost::re_detail::copy<BidirectionalIterator,OutputIterator>(InputIterator,InputIterator,OutputIterator)'
> being compiled
> with
> [
> OutputIterator=boost::re_detail::string_out_iterator<std::string>,
> BidirectionalIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
> char *,char *>,
> InputIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
> char *,char *>
> ]
> D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp(446) :
> see reference to function template instantiation 'OutputIterator
> boost::regex_replace<boost::re_detail::string_out_iterator<S>,__rw::__rw_debug_iter<_Container,_Iterator,_MutableIterator>,boost::regex_traits<charT>,char>(OutputIterator,BidirectionalIterator,BidirectionalIterator,const
> boost::basic_regex<charT,traits> &,const charT
> *,boost::regex_constants::match_flag_type)' being compiled
> with
> [
> OutputIterator=boost::re_detail::string_out_iterator<std::string>,
> S=std::string,
> _Container=std::basic_string<char,std::char_traits<char>,std::allocator<char>>,
> _Iterator=const char *,
> _MutableIterator=char *,
> charT=char,
> BidirectionalIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
> char *,char *>,
> traits=boost::regex_traits<char>
> ]
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
> C3861: 'unchecked_copy': identifier not found
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
> C2653: 'stdext' : is not a class or namespace name
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_replace.hpp(44) : see
> reference to function template instantiation 'OutputIterator
> boost::re_detail::copy<BidirectionalIterator,OutputIterator>(InputIterator,InputIterator,OutputIterator)'
> being compiled
> with
> [
> OutputIterator=boost::re_detail::string_out_iterator<std::string>,
> BidirectionalIterator=const char *,
> InputIterator=const char *
> ]
> D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp(456) :
> see reference to function template instantiation 'OutputIterator
> boost::regex_replace<boost::re_detail::string_out_iterator<S>,const
> char*,boost::regex_traits<charT>,char>(OutputIterator,BidirectionalIterator,BidirectionalIterator,const
> boost::basic_regex<charT,traits> &,const charT
> *,boost::regex_constants::match_flag_type)' being compiled
> with
> [
> OutputIterator=boost::re_detail::string_out_iterator<std::string>,
> S=std::string,
> charT=char,
> BidirectionalIterator=const char *,
> traits=boost::regex_traits<char>
> ]
> D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
> C3861: 'unchecked_copy': identifier not found
>
> CALL "D:\Program Files\Microsoft Visual Studio
> 8\Common7\Tools\..\..\VC\bin\vcvars32.BAT" >nul
> "D:\Program Files\Microsoft Visual Studio
> 8\Common7\Tools\..\..\VC\bin\cl" /Zm800 -nologo /EHsc -c
> -DBOOST_REGEX_CONFIG_INFO=1 -D_RWSTDDEBUG /Z7 /Od /Ob0 /EHsc /GR /MTd
> /Zc:forScope /Zc:wchar_t -I"bin\boost\libs\regex\build"
> -I"D:\_Projects\stdcxx_working\include"
> -I"D:\_Projects\stdcxx_working\include\ansi"
> -I"D:\_Projects\stdcxx_working\build\msvc-8.0\15s\include"
> -I"D:\_Libs\boost_1_33_1"
> -Fo"bin\boost\libs\regex\build\libboost_regex.lib\vc-8_0-stdcxx\debug\
> runtime-link-static\threading-multi\cregex.obj"
> -Tp"D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp"
>

>

> D:\_Libs\boost_1_33_1\boost/regex/v4/fileiter.hpp(331) : error C2039:
> 'ptrdiff_t' : is not a member of 'std'
> D:\_Libs\boost_1_33_1\boost/regex/v4/fileiter.hpp(378) : error C2039:
> 'ptrdiff_t' : is not a member of 'std'
>
> CALL "D:\Program Files\Microsoft Visual Studio
> 8\Common7\Tools\..\..\VC\bin\vcvars32.BAT" >nul
> "D:\Program Files\Microsoft Visual Studio
> 8\Common7\Tools\..\..\VC\bin\cl" /Zm800 -nologo /EHsc -c
> -DBOOST_REGEX_CONFIG_INFO=1 -D_RWSTDDEBUG /Z7 /Od /Ob0 /EHsc /GR /MTd
> /Zc:forScope /Zc:wchar_t -I"bin\boost\libs\regex\build"
> -I"D:\_Projects\stdcxx_working\include"
> -I"D:\_Projects\stdcxx_working\include\ansi"
> -I"D:\_Projects\stdcxx_working\build\msvc-8.0\15s\include"
> -I"D:\_Libs\boost_1_33_1"
> -Fo"bin\boost\libs\regex\build\libboost_regex.lib\vc-8_0-stdcxx\debug\
> runtime-link-static\threading-multi\fileiter.obj"
> -Tp"D:\_Libs\boost_1_33_1\libs\regex\build\../src/fileiter.cpp"
>

>
> I propose to #include <cstddef> in fileiter.hpp to define the
> std::ptrdiff_t.
>
> And also I propose to change the line 131 in regex_workaround.hpp from
> #if BOOST_WORKAROUND(BOOST_MSVC,>=1400)
> to the
> #if BOOST_WORKAROUND(BOOST_MSVC,>=1400) &&
> defined(BOOST_DINKUMWARE_STDLIB)
> }}}

New description:

 {{{
 I have been working on the Apache C++ Standard Library project (STDCXX):
 http://incubator.apache.org/stdcxx/

 I've trying to compile the boost library with stdcxx.

 The details can be found here:
 http://mail-archives.apache.org/mod_mbox/incubator-stdcxx-
 dev/200704.mbox/%
 3c7BDB2168BEAEF14C98F1901FD2DE64386573EB_at_[hidden]%3e

 Boost version: 1.33.1
 STDCXX version: 4.2

 I've got the following errors in boost/regex/v4/regex_workaround.hpp and
 boost/regex/v4/fileiter.hpp:



 D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
 C2653: 'stdext' : is not a class or namespace name
         D:\_Libs\boost_1_33_1\boost/regex/v4/regex_replace.hpp(44) : see
 reference to function template instantiation 'OutputIterator
 boost::re_detail::copy<BidirectionalIterator,OutputIterator>(InputIterator,InputIterator,OutputIterator)'
 being compiled
         with
         [
 OutputIterator=boost::re_detail::string_out_iterator<std::string>,
 BidirectionalIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
 char *,char *>,
 InputIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
 char *,char *>
         ]
         D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp(446) :
 see reference to function template instantiation 'OutputIterator
 boost::regex_replace<boost::re_detail::string_out_iterator<S>,__rw::__rw_debug_iter<_Container,_Iterator,_MutableIterator>,boost::regex_traits<charT>,char>(OutputIterator,BidirectionalIterator,BidirectionalIterator,const
 boost::basic_regex<charT,traits> &,const charT
 *,boost::regex_constants::match_flag_type)' being compiled
         with
         [
 OutputIterator=boost::re_detail::string_out_iterator<std::string>,
             S=std::string,
 _Container=std::basic_string<char,std::char_traits<char>,std::allocator<char>>,
             _Iterator=const char *,
             _MutableIterator=char *,
             charT=char,
 BidirectionalIterator=__rw::__rw_debug_iter<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,const
 char *,char *>,
             traits=boost::regex_traits<char>
         ]
 D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
 C3861: 'unchecked_copy': identifier not found
 D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
 C2653: 'stdext' : is not a class or namespace name
         D:\_Libs\boost_1_33_1\boost/regex/v4/regex_replace.hpp(44) : see
 reference to function template instantiation 'OutputIterator
 boost::re_detail::copy<BidirectionalIterator,OutputIterator>(InputIterator,InputIterator,OutputIterator)'
 being compiled
         with
         [
 OutputIterator=boost::re_detail::string_out_iterator<std::string>,
             BidirectionalIterator=const char *,
             InputIterator=const char *
         ]
         D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp(456) :
 see reference to function template instantiation 'OutputIterator
 boost::regex_replace<boost::re_detail::string_out_iterator<S>,const
 char*,boost::regex_traits<charT>,char>(OutputIterator,BidirectionalIterator,BidirectionalIterator,const
 boost::basic_regex<charT,traits> &,const charT
 *,boost::regex_constants::match_flag_type)' being compiled
         with
         [
 OutputIterator=boost::re_detail::string_out_iterator<std::string>,
             S=std::string,
             charT=char,
             BidirectionalIterator=const char *,
             traits=boost::regex_traits<char>
         ]
 D:\_Libs\boost_1_33_1\boost/regex/v4/regex_workaround.hpp(145) : error
 C3861: 'unchecked_copy': identifier not found

     CALL "D:\Program Files\Microsoft Visual Studio
 8\Common7\Tools\..\..\VC\bin\vcvars32.BAT" >nul
     "D:\Program Files\Microsoft Visual Studio
 8\Common7\Tools\..\..\VC\bin\cl" /Zm800 -nologo /EHsc -c
 -DBOOST_REGEX_CONFIG_INFO=1 -D_RWSTDDEBUG /Z7 /Od /Ob0 /EHsc /GR /MTd
 /Zc:forScope /Zc:wchar_t -I"bin\boost\libs\regex\build"
 -I"D:\_Projects\stdcxx_working\include"
 -I"D:\_Projects\stdcxx_working\include\ansi"
 -I"D:\_Projects\stdcxx_working\build\msvc-8.0\15s\include"
 -I"D:\_Libs\boost_1_33_1"
 -Fo"bin\boost\libs\regex\build\libboost_regex.lib\vc-8_0-stdcxx\debug\
 runtime-link-static\threading-multi\cregex.obj"
 -Tp"D:\_Libs\boost_1_33_1\libs\regex\build\../src/cregex.cpp"




 D:\_Libs\boost_1_33_1\boost/regex/v4/fileiter.hpp(331) : error C2039:
 'ptrdiff_t' : is not a member of 'std'
 D:\_Libs\boost_1_33_1\boost/regex/v4/fileiter.hpp(378) : error C2039:
 'ptrdiff_t' : is not a member of 'std'

     CALL "D:\Program Files\Microsoft Visual Studio
 8\Common7\Tools\..\..\VC\bin\vcvars32.BAT" >nul
     "D:\Program Files\Microsoft Visual Studio
 8\Common7\Tools\..\..\VC\bin\cl" /Zm800 -nologo /EHsc -c
 -DBOOST_REGEX_CONFIG_INFO=1 -D_RWSTDDEBUG /Z7 /Od /Ob0 /EHsc /GR /MTd
 /Zc:forScope /Zc:wchar_t -I"bin\boost\libs\regex\build"
 -I"D:\_Projects\stdcxx_working\include"
 -I"D:\_Projects\stdcxx_working\include\ansi"
 -I"D:\_Projects\stdcxx_working\build\msvc-8.0\15s\include"
 -I"D:\_Libs\boost_1_33_1"
 -Fo"bin\boost\libs\regex\build\libboost_regex.lib\vc-8_0-stdcxx\debug\
 runtime-link-static\threading-multi\fileiter.obj"
 -Tp"D:\_Libs\boost_1_33_1\libs\regex\build\../src/fileiter.cpp"



 I propose to #include <cstddef> in fileiter.hpp to define the
 std::ptrdiff_t.

 And also I propose to change the line 131 in regex_workaround.hpp from
 #if BOOST_WORKAROUND(BOOST_MSVC,>=1400)
 to the
 #if BOOST_WORKAROUND(BOOST_MSVC,>=1400) &&
 defined(BOOST_DINKUMWARE_STDLIB)
 }}}

Comment:

 Patch now applied to SVN trunk: apologies for the delay.

--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/883#comment:4>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.


This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:56 UTC