forked from boostorg/type_traits
Fix msvc and gcc warnings in the type_traits library.
Build should now be clean with cl /W4 or gcc -Wall -Wextra -pedantic for all except one test - there appears to be no way to use initialized aligned_storage with gcc without it producing a warning :-( [SVN r57489]
This commit is contained in:
@ -26,11 +26,19 @@ namespace detail{
|
||||
|
||||
#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
|
||||
|
||||
template <class T>
|
||||
struct is_signed_values
|
||||
{
|
||||
typedef typename remove_cv<T>::type no_cv_t;
|
||||
BOOST_STATIC_CONSTANT(no_cv_t, minus_one = (static_cast<no_cv_t>(-1)));
|
||||
BOOST_STATIC_CONSTANT(no_cv_t, zero = (static_cast<no_cv_t>(0)));
|
||||
};
|
||||
|
||||
template <class T>
|
||||
struct is_signed_helper
|
||||
{
|
||||
typedef typename remove_cv<T>::type no_cv_t;
|
||||
BOOST_STATIC_CONSTANT(bool, value = (!(static_cast<no_cv_t>(-1) > 0)));
|
||||
BOOST_STATIC_CONSTANT(bool, value = (!(::boost::detail::is_signed_values<T>::minus_one > boost::detail::is_signed_values<T>::zero)));
|
||||
};
|
||||
|
||||
template <bool integral_type>
|
||||
|
@ -27,10 +27,17 @@ namespace detail{
|
||||
#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
|
||||
|
||||
template <class T>
|
||||
struct is_ununsigned_helper
|
||||
struct is_unsigned_values
|
||||
{
|
||||
typedef typename remove_cv<T>::type no_cv_t;
|
||||
BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) > 0));
|
||||
BOOST_STATIC_CONSTANT(no_cv_t, minus_one = (static_cast<no_cv_t>(-1)));
|
||||
BOOST_STATIC_CONSTANT(no_cv_t, zero = (static_cast<no_cv_t>(0)));
|
||||
};
|
||||
|
||||
template <class T>
|
||||
struct is_ununsigned_helper
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (::boost::detail::is_unsigned_values<T>::minus_one > ::boost::detail::is_unsigned_values<T>::zero));
|
||||
};
|
||||
|
||||
template <bool integral_type>
|
||||
|
4
test/is_abstract_test.cpp
Executable file → Normal file
4
test/is_abstract_test.cpp
Executable file → Normal file
@ -13,6 +13,10 @@
|
||||
# include <boost/type_traits/is_abstract.hpp>
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(disable: 4505)
|
||||
#endif
|
||||
|
||||
|
||||
struct TestA {};
|
||||
struct TestB { virtual void foo(void) = 0; };
|
||||
|
@ -407,6 +407,10 @@ struct wrap
|
||||
{
|
||||
T t;
|
||||
int j;
|
||||
protected:
|
||||
wrap();
|
||||
wrap(const wrap&);
|
||||
wrap& operator=(const wrap&);
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user