better is_final on empty_base_optimization

This commit is contained in:
Vinnie Falco
2017-07-12 16:57:47 -07:00
parent b18d0d15b0
commit 78f3cd59a1
2 changed files with 5 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
Version 81: Version 81:
* Pass string_view by value * Pass string_view by value
* better is_final on empty_base_optimization
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -8,6 +8,7 @@
#ifndef BEAST_DETAIL_EMPTY_BASE_OPTIMIZATION_HPP #ifndef BEAST_DETAIL_EMPTY_BASE_OPTIMIZATION_HPP
#define BEAST_DETAIL_EMPTY_BASE_OPTIMIZATION_HPP #define BEAST_DETAIL_EMPTY_BASE_OPTIMIZATION_HPP
#include <boost/type_traits/is_final.hpp>
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
@@ -16,12 +17,9 @@ namespace detail {
template<class T> template<class T>
struct empty_base_optimization_decide struct empty_base_optimization_decide
: std::integral_constant <bool, : std::integral_constant<bool,
std::is_empty <T>::value std::is_empty<T>::value &&
#ifdef __clang__ ! boost::is_final<T>::value>
&& !__is_final(T)
#endif
>
{ {
}; };