Boost logo

Boost Users :

Subject: [Boost-users] Boost 1.52 with Cygwin and STLPort 5.2.1
From: Akanksh Vashisth (a.vashisth_at_[hidden])
Date: 2013-07-31 14:36:18


Hello,

I am trying to compile the following source file using gcc on cygwin and
stlport:

//--------------------------------------
//cygwin_stl.cpp
#include <boost/graph/graphviz.hpp>

int main()
{
    return 0;
}
//--------------------------------------

with the following commandline:

//--------------------------------------
$ gcc cygwin_stl.cpp -I /cygdrive/y/STLPORT/STLport-5.2.1/stlport/ -I
/cygdrive/y/BOOST/boost_1_52_0/
//--------------------------------------

and this is resulting in an assertion inside
boost/xpressive/traits/cpp_regex_tratis.hpp at line 74 as:

//--------------------------------------
/cygdrive/y/BOOST/boost_1_52_0/boost/xpressive/traits/cpp_regex_traits.hpp:74:9:
error: no matching function for call to
‘assertion_failed(mpl_::failed************
mpl_::assert_relation<(mpl_::assert_::relations)1u, -0x000000069l,
2l>::************)’
//--------------------------------------

Complete error message attached.

It appears that the boost header has a conditional compilation for
__CYGWIN__ where it asserts a property of the STL std::ctype_base headers
that come with cygwin. But as I am using STLport, the assertion does not
hold true any longer, but I do have the preprocessor macro __CYGWIN__defined.

The code in cpp_regex_traits.hpp is as follows:

//--------------------------------------
#ifdef __CYGWIN__
// Work around a gcc warning on cygwin
template<>
struct mask_cast<std::ctype_base::print>
{
    BOOST_MPL_ASSERT_RELATION('\227', ==, std::ctype_base::print);
    BOOST_STATIC_CONSTANT(umaskex_t, value = 0227);
};
#endif
//--------------------------------------

I do have __CYGWIN__ as I am on cygwin, but the STL header is coming from
STLport, thus the assertion fails.

Is there anyway I can work around this issue? or is it a bug in the boost
header where it the test for __CYGWIN__ is insufficient? as a third party
STL can be used with cygwin, in which case the assertion is invalid.

Thanks





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net