|
Boost : |
From: tom.widmer_at_[hidden]
Date: 2001-08-23 12:27:39
Would I be right in saying that a std::pair<int, int> is a POD type? Yet boost::is_POD<std::pair<int, int> >::value == false :(
Is there any chance that std::pair specialisations can be added to type_traits? Obviously, with compiler support there wouldn't be a problem, but my compiler doesn't have it yet (does anyone's?).
The obvious implementation goes something like:
template <class U, class V>
struct is_POD<std::pair<U, V> >
{
static bool const value = boost::type_traits::ice_and<is_POD<U>::value, is_POD<V>::value >::value;
};
//same for has_trivial_copy, etc
The same could also be done for tuple perhaps (is it a POD if its members are PODs?).
In a bit of test code where messages (containing 10 element vectors of pairs) were being sent down a posix mqueue and received in the same program, adding the code above realised about a 33% speed increase (my library persists vectors of PODs using memcpy)!
Incidently, I'm finally using boost in production real-time code, and it's great! I just need to go through removing my own proprietry stuff where appropriate.
Tom
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk