forked from boostorg/concept_check
Work around bugs in Sun Studio 11
[SVN r39243]
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
||||||
|
|
||||||
# include <boost/mpl/bool.hpp>
|
# include <boost/mpl/bool.hpp>
|
||||||
|
# include <boost/detail/workaround.hpp>
|
||||||
namespace boost { namespace concept {
|
namespace boost { namespace concept {
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
@@ -19,9 +19,17 @@ namespace detail
|
|||||||
template <class Model, void (Model::*)()>
|
template <class Model, void (Model::*)()>
|
||||||
struct wrap_constraints {};
|
struct wrap_constraints {};
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580)
|
||||||
|
// Work around the following bogus error in Sun Studio 11, by
|
||||||
|
// turning off the has_constraints function entirely:
|
||||||
|
// Error: complex expression not allowed in dependent template
|
||||||
|
// argument expression
|
||||||
|
inline no has_constraints_(...);
|
||||||
|
#else
|
||||||
template <class Model>
|
template <class Model>
|
||||||
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
|
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
|
||||||
inline no has_constraints_(...);
|
inline no has_constraints_(...);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// This would be called "detail::has_constraints," but it has a strong
|
// This would be called "detail::has_constraints," but it has a strong
|
||||||
|
Reference in New Issue
Block a user