forked from OctaForge/libostd
check for input range before checking for put() - avoid potential false positives
parent
329aefdecd
commit
fe6325d5e3
11
octa/range.h
11
octa/range.h
|
@ -87,11 +87,12 @@ namespace octa {
|
||||||
static constexpr bool value = (sizeof(__octa_test<T>(0)) == sizeof(char));
|
static constexpr bool value = (sizeof(__octa_test<T>(0)) == sizeof(char));
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T, bool
|
template<typename T, bool = (IsConvertible<
|
||||||
= (IsConvertible<RangeCategory<T>, OutputRangeTag>::value ||
|
RangeCategory<T>, OutputRangeTag
|
||||||
__OctaOutputRangeTest<T, const RangeValue<T> &>::value ||
|
>::value || (IsInputRange<T>::value &&
|
||||||
__OctaOutputRangeTest<T, RangeValue<T> &&>::value)
|
(__OctaOutputRangeTest<T, const RangeValue<T> &>::value ||
|
||||||
> struct IsOutputRange: False {};
|
__OctaOutputRangeTest<T, RangeValue<T> &&>::value)
|
||||||
|
))> struct IsOutputRange: False {};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct IsOutputRange<T, true>: True {};
|
struct IsOutputRange<T, true>: True {};
|
||||||
|
|
Loading…
Reference in New Issue