diff --git a/src/bin/libint/iter.h b/src/bin/libint/iter.h index d8ec7628a..54b0197ab 100644 --- a/src/bin/libint/iter.h +++ b/src/bin/libint/iter.h @@ -168,7 +168,7 @@ namespace libint2 { typename SubIteratorBase::cp_rettype SubIteratorBase::pelem() const { - return PElemImpl::result>::pelem(elem()); + return PElemImpl::value>::pelem(elem()); } #if 0 diff --git a/src/bin/libint/smart_ptr.h b/src/bin/libint/smart_ptr.h index a727a825d..91755d35f 100644 --- a/src/bin/libint/smart_ptr.h +++ b/src/bin/libint/smart_ptr.h @@ -21,6 +21,7 @@ #ifndef _libint2_src_bin_libint_smartptr_h_ #define _libint2_src_bin_libint_smartptr_h_ +#include #include #if HAVE_SHARED_PTR_IN_BOOST @@ -50,27 +51,14 @@ namespace libint2 { namespace detail { /** Can be used to determine whether a type is a SafePtr */ +template +struct IsSafePtrHelper : std::false_type {}; template -struct IsSafePtr { - enum { result = false }; -}; +struct IsSafePtrHelper> : std::true_type {}; template -struct IsSafePtr< SafePtr > { - enum { result = true }; -}; -template -struct IsSafePtr< const SafePtr > { - enum { result = true }; -}; -template -struct IsSafePtr< SafePtr& > { - enum { result = true }; -}; -template -struct IsSafePtr< const SafePtr& > { - enum { result = true }; -}; +struct IsSafePtr : IsSafePtrHelper::type>::type> {}; } // namespace detail } // namespace libint2