Boost logo

Boost :

From: SourceForge.net (noreply_at_[hidden])
Date: 2007-04-03 15:55:10


Bugs item #1693867, was opened at 2007-04-03 22:55
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1693867&group_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: None
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.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)

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

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

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-bugs mailing list
Boost-bugs_at_[hidden]
https://lists.sourceforge.net/lists/listinfo/boost-bugs


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk