C ++ regex con char y wchar_t?

Tengo un const char y un const wchar_t. Mi función a continuación funciona con el carácter. ¿Cuál es la forma más simple / eficiente de escribir una función que pueda manejar fácilmente char y wchar_t?

    const char* asciiChar = "this is an ascii string";
    const wchar_t* unicodeChar = L"this is a unicode string";

    std::string replaceSubstring(const char* find, const char* asciiChar, const char* replace)
    {
        std::string const text(str);
        std::regex const reg(find);
        std::string const newStr = std::regex_replace(text, reg, replace);
        return newStr;
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta