wchar_tは最大拡張文字集合(largest extended character set)の1メンバを入れられることが保障されている
char16_tとかchar32_tが導入されたのはint32_tのようにどの環境でも共通の文字コードを前提としたコードを実現するため
1バイト固定のcharに収まらないためにwchar_tが用意されたのとは違う

つまりUnicodeの合成文字みたいな複数メンバによって一文字を表す文字集合じゃないものを
最大拡張文字集合として扱える環境でwchar_tを使えば解決