Clean up a custom void_t implementation

Change-Id: I30fcaef2a242cc2daee82d37debdb97e59a9a8f2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Lars Knoll 2020-07-06 23:15:07 +02:00
parent 6d95ffe996
commit d78df77485
1 changed files with 3 additions and 8 deletions

View File

@ -814,15 +814,10 @@ struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().p
{ static_cast<Container *>(const_cast<void *>(container))->push_back(*static_cast<const typename Container::value_type *>(value)); }
};
namespace QtPrivate {
namespace ContainerCapabilitiesMetaProgrammingHelper {
template<typename... Ts>
using void_t = void;
}
}
template<typename Container>
struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
struct ContainerCapabilitiesImpl<Container,
std::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())),
decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
{
enum {ContainerCapabilities = ContainerIsAppendable};