Boost logo

Boost Users :

Subject: [Boost-users] [Boost.Coroutine] Problem compiling simple code with c++98 compiler
From: Lukas Czaja (lukas70000_at_[hidden])
Date: 2013-03-27 18:44:41


Hi,
i was checking if my code is compatible with c++98 standard and i've
encounterd compile error. With -std c++11 option everything works
fine.
Below i've written code causing same problem.

#include <boost/coroutine/coroutine.hpp>
#include <boost/coroutine/attributes.hpp>

typedef boost::coroutines::coroutine<void( boost::system::error_code ,
std::size_t)> coro_t;

struct coro_test{

    coro_test() {}

    void coro_fun(typename coro_t::caller_type& ca)const{
        boost::system::error_code ec;
        boost::tie(ec, boost::tuples::ignore) = ca.get();
        ca();
    }

    coro_t coro;
};

int main(int argc, char *argv[])
{

    {
    boost::system::error_code ec;
    coro_t coro2; //default construction is ok
    coro_test ctest; //compile error , why ???
    coro_t coro( boost::bind(&coro_test::coro_fun, &ctest,
_1),coro_t::arguments( ec, 7));
    coro = coro_t(boost::bind(&coro_test::coro_fun, &ctest,
_1),coro_t::arguments( ec, 7));
    }
...

/usr/local/include/boost/type_traits/is_function.hpp:50: b³±d:forming
pointer to reference type
'boost::rv<boost::coroutines::coroutine<void(boost::system::error_code,
long unsigned int)> >&'

/usr/local/include/boost/type_traits/is_function.hpp:102: b³±d:'value'
is not a member of
'boost::detail::is_function_impl<boost::rv<boost::coroutines::coroutine<void(boost::system::error_code,
long unsigned int)> >&>'

/usr/local/include/boost/type_traits/is_convertible.hpp:354:
b³±d:'value' is not a member of
'boost::is_function<boost::rv<boost::coroutines::coroutine<void(boost::system::error_code,
long unsigned int)> >&>'

/usr/local/include/boost/utility/enable_if.hpp:59: b³±d:'value' is not
a member of 'boost::is_convertible<boost::coroutines::coroutine<void(boost::system::error_code,
long unsigned int)>&,
boost::rv<boost::coroutines::coroutine<void(boost::system::error_code,
long unsigned int)> >&>'

I work with Qt, g++ compiler on ubuntu 12.10
Is this library bug ?


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