$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: John Maddock (John_Maddock_at_[hidden])
Date: 2001-03-14 07:07:25
Jeremy,
I'm having a problem with the concept architypes classes, I want to
instantiate bidirectional_iterator_archetype<char> and
bidirectional_iterator_archetype<wchar_t>, but both fail to compile because
of the way boost::static_object is defined:
template <class T>
class static_object {
public:
static T& get() {
detail::dummy_constructor d;
static T x(d);
return x;
}
};
As far as I can see this class is never documented (?), but you can't
instantiate the iterator architypes without specialising this object for
your particular type (or can you?). But surely I shouldn't be declaring
specialisations of library classes for non-UDT's ?
What would be wrong with defining this class as:
template <class T>
class static_object {
public:
static T& get() {
static T x;
return x;
}
};
Which would just plain work for all types that have default constructors...
- John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/