OK, I know installed the latest version of boost, which uses has_new_operator type trait. But , know I am getting compiler errors , for this minimal test program : #include <boost/type_traits/has_new_operator.hpp> class A { public: void* operator new(std::size_t); void* operator new[] (size_t); void* operator new(std::size_t, void*); }; int main() { boost::has_new_operator<A>(); } The compiler errors are : Error 1: error C2975: 'b1' : invalid template argument for 'boost::type_traits::ice_or', expected compile-time constant expression \libs\boost\inc\boost-1_41\boost\type_traits\has_new_operator.hpp 100 Error 2 : error C2866: 'boost::detail::has_new_operator_impl<T>::s1' : a const static data member of a managed type must be initialized at the point of declaration \libs\boost\inc\boost-1_41\boost\type_traits\has_new_operator.hpp 93 Error 3: Error 1 error C2668: 'boost::detail::has_new_operator_impl<T>::check_sig' : ambiguous call to overloaded function \libs\boost\inc\boost-1_41\boost\type_traits\has_new_operator.hpp 93 If you can see what the problem is Thank you for your time On Fri, Dec 4, 2009 at 5:25 PM, Robert Ramey <ramey@rrsd.com> wrote:
I notice that the crash maybe has to do something with that, that my CustomClass implements its own new and delete operators.
I know that the default implementation of load_construct data uses operator placement ::new ( global new operator ) to allocate object when loading through pointer, a
** I don't know which version of boost you're using. The most recent version(s) make use of the type trait "has_new_operator" to call a class specific new operator. Without having a specific case to play with I don't know for sure, but it may address you're situation.
Robert Ramey
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users