C++ 铸造标准::wstring至常数wchar\u t x[]

C++ 铸造标准::wstring至常数wchar\u t x[],c++,C++,我有以下代码: void get_id(int i, std::vector<item>& _items) { auto cpool = get_db_connection_pool(); auto con = cpool->get_connection(); db::result m; int _id; if (i == 1) { const wchar_t sql[] =

我有以下代码:

void get_id(int i, std::vector<item>& _items) {

    auto cpool = get_db_connection_pool();
    auto con = cpool->get_connection();
    db::result m;

    int _id;

    if (i == 1) {               

        const wchar_t sql[] = LR"***(
            SELECT * FROM TABLE1                    
        )***";

        db::statement st(con, sql);

        m = st.execute().into(_id);

        while (m.move_next()) {                 
            _items.push_back(item {_id});
        }
    }
    else {
        const wchar_t sql[] = LR"***(
            SELECT * FROM TABLE2                    
        )***";

        db::statement st(con, sql);

        m = st.execute().into(_id);

        while (m.move_next()) {                 
            _items.push_back(item {_id});
        }
    }
}
在if-else语句中重复写入。我想将该部分移到if else案例之外,如下所示:

void get_id(int i, std::vector<item>& _items) {

    auto cpool = get_db_connection_pool();
    auto con = cpool->get_connection();
    db::result m;

    int _id;

    if (i == 1) {               

        const wchar_t sql[] = LR"***(
            SELECT * FROM TABLE1                    
        )***";
    }
    else {
        const wchar_t sql[] = LR"***(
            SELECT * FROM TABLE2                    
        )***";
    }


    db::statement st(con, sql);

    m = st.execute().into(_id);

    while (m.move_next()) {                 
        _items.push_back(item {_id});
    }
}
我尝试用临时std::wstring替换if-else案例中的sql[],但我不知道如何将std::wstring强制转换为const wchar_t sql[]。std::wstring有一个成员函数c_str,该函数将向基础字符串返回const wchar_t*。只要db::语句接受常量wchar\u t[]或常量wchar\u t*,就可以使用

std::wstring sql;
if (i == 1) {               

    sql = LR"***(
        SELECT * FROM TABLE1                    
    )***";
}
else {
    sql = LR"***(
        SELECT * FROM TABLE2                    
    )***";
}

db::statement st(con, sql.c_str());
wstring有一个成员函数c_str,它将向基础字符串返回常量wchar_t*。只要db::语句接受常量wchar\u t[]或常量wchar\u t*,就可以使用

std::wstring sql;
if (i == 1) {               

    sql = LR"***(
        SELECT * FROM TABLE1                    
    )***";
}
else {
    sql = LR"***(
        SELECT * FROM TABLE2                    
    )***";
}

db::statement st(con, sql.c_str());

谢谢,我知道c_str,但我没想过这样做。谢谢你知道一个我能阅读C++类型的网站吗?我是C++游戏新手,我的知识大部分都在c@PresidentCamacho我用了不少。你可能也想得到一个很好的感谢,我知道c_str,但我没想过这样做。谢谢你知道一个我能阅读C++类型的网站吗?我是C++游戏新手,我的知识大部分都在c@PresidentCamacho我用了不少。你可能还想得到一个好的