stdcxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Farid Zaripov" <Farid_Zari...@epam.com>
Subject [ boost-Bugs-1693867 ] errors when build with Apache stdcxx
Date Wed, 04 Apr 2007 15:33:41 GMT
Bugs item #1693867, was opened at 2007-04-03 22:55 Message generated for
change (Comment added) made by farid_zaripov You can respond by
visiting: 
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1693867&gro
up_id=7586

Please note that this message will contain a full copy of the comment
thread, including the initial issue submission, for this request, not
just the latest update.
Category: regex
Group: None
>Status: Open
Resolution: Accepted
Priority: 5
Private: No
Submitted By: Farid (farid_zaripov)
Assigned to: John Maddock (johnmaddock)
Summary: errors when build with Apache stdcxx

Initial Comment:
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.mbo
x/%
3c7BDB2168BEAEF14C98F1901FD2DE64386573EB@epmsa009.minsk.epam.com%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>(InputIterat
or,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_tra
its<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<c
harT>,char>(OutputIterator,BidirectionalIterator,BidirectionalIterator,c
onst 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>(InputIterat
or,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,BidirectionalItera
tor,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\ru
ntime-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\ru
ntime-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 By: Farid (farid_zaripov)
Date: 2007-04-04 18:32

Message:
Logged In: YES
user_id=1760091
Originator: YES

In addition the Apache stdcxx provide the only one wchar_t (as compiler
native type or as typedef to unsigned short depending from compiler
options). I think the RogueWave STL does the same, so I propose the
following changes in boost/regex/config.hpp:

----------------
--- config.hpp	Wed Aug 24 12:58:50 2005
+++ D:\_Libs\boost_1_33_1\boost\regex\config.hpp	Wed Apr 04
13:04:27 2007
@@ -152,7 +152,7 @@
  * of the non-inline functions in the library, so that users can still
link to the lib,
  * irrespective of whether their own code is built with /Zc:wchar_t.
  */
-#if defined(__cplusplus) && (defined(BOOST_MSVC) || defined(__ICL)) &&
!defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(BOOST_WINDOWS) &&
!defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+#if defined(__cplusplus) && (defined(BOOST_MSVC) || defined(__ICL)) &&
!defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(BOOST_WINDOWS) &&
!defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) &&
!defined(BOOST_RWSTD_VER)
 #  define BOOST_REGEX_HAS_OTHER_WCHAR_T  #  ifdef BOOST_MSVC
 #     pragma warning(push)
----------------


----------------------------------------------------------------------

Comment By: John Maddock (johnmaddock)
Date: 2007-04-04 13:01

Message:
Logged In: YES
user_id=14804
Originator: NO

Will apply to cvs head: it's too late for 1.34 though I'm afraid :-(

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1693867&gro
up_id=7586

Mime
View raw message