マイクロソフト謹製のサンプルから抜粋・改造でできた。
https://docs.microsoft.com/ja-jp/cpp/text/how-to-convert-between-various-string-types?view=msvc-160

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

wstring  charTowstring(const char* orig)
{
    // 確保するワイド文字用バッファのサイズは、バイト数ではなく文字数を指定する。
    size_t newsize = strlen(orig) + 1;
    wchar_t* wc = new wchar_t[newsize];

    // 変換.
    size_t convertedChars = 0;
    mbstowcs_s(&convertedChars, wc, newsize, orig, _TRUNCATE);

    wstring ret(wc);
    return ret;
}

C++面倒…。というか上記のもretのスコープに自信なし。
wstring.valueOf(char[] data)とかあって然るべきではないかね。というか寧ろcharを引数に取るコンストラクタがあるべきでは。

[改訂第3版]C++ポケットリファレンス
湯朝 剛介
技術評論社
2018-02-15