Boost logo

Boost :

From: David Deakins (ddeakins_at_[hidden])
Date: 2007-09-15 00:39:40


I am getting failures of the error.cpp regression test for asio that
seem to be related to an order of initialization problem with the new
boost::asio::error::system_category. It appears that
asio::error::system_category is a const reference initialized by
error::detail::get_system_category(), which simply returns
boost::system::system_category. The problem seems to be that
boost::system::system_category is itself a const reference to the actual
system_category_const object created in Boost.System's error_code.cpp
file. If it happens that the boost::asio::error::system_category
reference is initialized before the boost::system::system_category
reference, then boost::asio::error::system_category is a copy of the
uninitialized boost::system::system_category reference rather than a
reference to the system_category_const object. Attempting to use the
category-related functions of an error_code created from the asio
system_category enums then triggers an access violation. Of course, if
boost::system::system_category is initialized first, then everything is
fine. Hopefully that all made sense.

Thanks,
-Dave


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