Ticket #8958: any_fix_invalid_static_cast_using_remove_cv.patch

File any_fix_invalid_static_cast_using_remove_cv.patch, 1.1 KB (added by Jannis Harder <jix@…>, 9 years ago)
  • boost/any.hpp

    diff --git a/boost/any.hpp b/boost/any.hpp
    index 152eaf2..415efc0 100644
    a b  
    1919
    2020#include "boost/config.hpp"
    2121#include <boost/type_traits/remove_reference.hpp>
     22#include <boost/type_traits/remove_cv.hpp>
    2223#include <boost/type_traits/decay.hpp>
    2324#include <boost/type_traits/add_reference.hpp>
    2425#include <boost/type_traits/is_reference.hpp>
    namespace boost  
    5758
    5859        template<typename ValueType>
    5960        any(const ValueType & value)
    60           : content(new holder<BOOST_DEDUCED_TYPENAME decay<const ValueType>::type>(value))
     61          : content(new holder<BOOST_DEDUCED_TYPENAME remove_cv<BOOST_DEDUCED_TYPENAME decay<const ValueType>::type>::type>(value))
    6162        {
    6263        }
    6364
    namespace boost  
    253254#else
    254255            operand->type() == typeid(ValueType)
    255256#endif
    256             ? &static_cast<any::holder<ValueType> *>(operand->content)->held
     257            ? &static_cast<any::holder<BOOST_DEDUCED_TYPENAME remove_cv<ValueType>::type> *>(operand->content)->held
    257258            : 0;
    258259    }
    259260