even with -std=c++14 it fails: ``` g++ -I. -I/usr/include/ruby-3.3.0/x86_64-linux-gnu -I/usr/include/ruby-3.3.0/ruby/backward -I/usr/include/ruby-3.3.0 -I. -DHAVE_UNICODE_UCNV_H -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fno-strict-aliasing -fPIC -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -std=c++14 -o transliterator.o -c transliterator.cpp In file included from /usr/include/unicode/unistr.h:39, from /usr/include/unicode/translit.h:27, from transliterator.cpp:5: /usr/include/unicode/stringpiece.h:134:23: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'? 134 | (std::is_same_v<decltype(T().data()), const char*> | ^~~~~~~~~ | is_same /usr/include/unicode/stringpiece.h:134:66: error: template argument 1 is invalid 134 | (std::is_same_v<decltype(T().data()), const char*> | ^ /usr/include/unicode/stringpiece.h:138:17: error: expected '>' before ')' token 138 | ) && | ^ /usr/include/unicode/stringpiece.h:138:17: error: expected unqualified-id before ')' token In file included from /usr/include/unicode/uenum.h:25, from /usr/include/unicode/utrans.h:22, from /usr/include/unicode/translit.h:29: /usr/include/unicode/localpointer.h:561:26: error: 'auto' parameter not permitted in this context 561 | template <typename Type, auto closeFunction> | ^~~~ /usr/include/unicode/localpointer.h:573:76: error: template argument 2 is invalid 573 | explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p) | ^ /usr/include/unicode/localpointer.h:583:78: error: template argument 2 is invalid 583 | LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) { | ^ /usr/include/unicode/localpointer.h:599:59: error: template argument 2 is invalid 599 | operator std::unique_ptr<Type, decltype(closeFunction)> () && { | ^ /usr/include/unicode/uenum.h:69:1: note: invalid template non-type parameter 69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/uset.h:358:1: note: invalid template non-type parameter 358 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/utrans.h:258:1: note: invalid template non-type parameter 258 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUTransliteratorPointer, UTransliterator, utrans_close); ```