8 #ifndef INCLUDE_MOLASSEMBLER_TEMPLE_TRAITS_H
9 #define INCLUDE_MOLASSEMBLER_TEMPLE_TRAITS_H
14 namespace Molassembler {
22 template<
class ContainerType>
23 struct getValueTypeImpl {
24 using type =
typename std::remove_const<
25 typename std::remove_reference<
28 std::declval<ContainerType>()
37 struct getValueTypeImpl<std::vector<bool>> {
42 template<
class ContainerType>
43 using getValueType =
typename Detail::getValueTypeImpl<ContainerType>::type;
45 template<
class Function,
typename ...Args>
51 template<
class ReturnType,
typename ...Args>
53 using type = ReturnType;
std::result_of_t< Function(Args...)> functionReturnType
Figure out the return type of calling a function.
Definition: Containers.h:26
typename Detail::getValueTypeImpl< ContainerType >::type getValueType
Figures out the value type of a container via its iterators.
Definition: Containers.h:424