'C++ convert wchar_t to char16_t and back

I have a program that is supposed to run on all platfotms. So I need to get rid of wchar_t and use char16_t instead. How can I convert wchar_t <-> char16_t For example how would I get to use wsclen() here?

    wchar_t WT = L'Hello World! of WCHART';
    wchar_t* buf = new wchar_t[234];
    int a = wcslen(buf);
    int aa = wcslen(&WT);


    char16_t W16[] = u"Hello World! of CHAR16";
    int b = wcslen( W16);                           <--- ERROR HERE


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source