@@ -901,11 +901,12 @@ class IO {
901
901
}
902
902
903
903
template <typename T, typename Context>
904
- std::enable_if_t <has_SequenceTraits<T>::value, void >
905
- mapOptionalWithContext (const char *Key, T &Val, Context &Ctx) {
906
- // omit key/value instead of outputting empty sequence
907
- if (this ->canElideEmptySequence () && !(Val.begin () != Val.end ()))
908
- return ;
904
+ void mapOptionalWithContext (const char *Key, T &Val, Context &Ctx) {
905
+ if constexpr (has_SequenceTraits<T>::value) {
906
+ // omit key/value instead of outputting empty sequence
907
+ if (this ->canElideEmptySequence () && Val.begin () == Val.end ())
908
+ return ;
909
+ }
909
910
this ->processKey (Key, Val, false , Ctx);
910
911
}
911
912
@@ -916,12 +917,6 @@ class IO {
916
917
/* Required=*/ false , Ctx);
917
918
}
918
919
919
- template <typename T, typename Context>
920
- std::enable_if_t <!has_SequenceTraits<T>::value, void >
921
- mapOptionalWithContext (const char *Key, T &Val, Context &Ctx) {
922
- this ->processKey (Key, Val, false , Ctx);
923
- }
924
-
925
920
template <typename T, typename Context, typename DefaultT>
926
921
void mapOptionalWithContext (const char *Key, T &Val, const DefaultT &Default,
927
922
Context &Ctx) {
0 commit comments