37#if __clang_major__ >= 17 
   39#include <wx/unichar.h> 
   42struct std::char_traits<wxUniChar>
 
   44    using char_type = wxUniChar;
 
   46    using off_type = std::streamoff;
 
   47    using pos_type = std::streampos;
 
   48    using state_type = mbstate_t;
 
   50    static inline void assign( char_type& __c1, 
const char_type& __c2 ) 
noexcept { __c1 = __c2; }
 
   52    static inline bool eq( char_type __c1, char_type __c2 ) 
noexcept { 
return __c1 == __c2; }
 
   54    static inline bool lt( char_type __c1, char_type __c2 ) 
noexcept { 
return __c1 < __c2; }
 
   56    static constexpr int compare( 
const char_type* __s1, 
const char_type* __s2, 
size_t __n )
 
   58        for( ; __n; --__n, ++__s1, ++__s2 )
 
   60            if( lt( *__s1, *__s2 ) )
 
   63            if( lt( *__s2, *__s1 ) )
 
   70    static size_t length( 
const char_type* __s )
 
   74        for( ; !eq( *__s, char_type( 0 ) ); ++__s )
 
   80    static constexpr const char_type* 
find( 
const char_type* __s, 
size_t __n, 
const char_type& __a )
 
   92    static constexpr char_type* 
move( char_type* __s1, 
const char_type* __s2, 
size_t __n )
 
   97        char_type* __r = __s1;
 
  101            for( ; __n; --__n, ++__s1, ++__s2 )
 
  102                assign( *__s1, *__s2 );
 
  104        else if( __s2 < __s1 )
 
  110                assign( *--__s1, *--__s2 );
 
  116    static constexpr char_type* 
copy( char_type* __s1, 
const char_type* __s2, 
size_t __n )
 
  118        char_type* __r = __s1;
 
  120        for( ; __n; --__n, ++__s1, ++__s2 )
 
  121            assign( *__s1, *__s2 );
 
  126    static char_type* assign( char_type* __s, 
size_t __n, char_type __a )
 
  128        char_type* __r = __s;
 
  130        for( ; __n; --__n, ++__s )
 
  136    static inline constexpr int_type not_eof( int_type __c ) 
noexcept 
  138        return eq_int_type( __c, 
eof() ) ? ~eof() : __c;
 
  141    static inline char_type to_char_type( int_type __c ) 
noexcept { 
return char_type( __c ); }
 
  143    static inline int_type to_int_type( char_type __c ) 
noexcept { 
return static_cast<int_type
>( __c ); }
 
  145    static inline constexpr bool eq_int_type( int_type __c1, int_type __c2 ) 
noexcept { 
return __c1 == __c2; }
 
  147    static inline constexpr int_type 
eof() noexcept { 
return static_cast<int_type
>( EOF ); }
 
  153#include <nlohmann/json.hpp> 
This is simply a "stub" meant to inform MSVC when compiling shared libraries that it can find templat...