|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-09-22 09:22:53
Looking at the recent patch to functional/function_test.cpp:
// Revision 1.2 2001/09/22 11:52:24 johnmaddock
// Intel C++ fixes: no void return types supported.
[...]
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__ICL)
it seems to me that this uncovers a defect in the config system. The above
should really read
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) &&
!defined(BOOST_NO_VOID_RETURNS)
Also, there is no BOOST_NO_PARTIAL_ORDERING. I think that
BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING has 'mutated' to cover this
functionality; its original intent, as we've discussed recently, was to
detect whether
template<class T> void f(T const &);
and
template<class T> void f(T *); // simplified
can be partially ordered. But since it's not clear whether such a behavior
is conforming, this macro, if retained, does not belong to the 'defects'
config section. My opinion is that this macro should be removed, because
it's not really useful; the motivating example - choosing between a function
object and a function pointer - is further complicated by the fact that some
compilers bind const references to functions, so we'd need an additional
macro for that.
Executive summary:
+ BOOST_NO_VOID_RETURNS
+ BOOST_NO_PARTIAL_ORDERING
- BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
;-)
-- Peter Dimov Multi Media Ltd.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk