【发布时间】:2016-06-30 14:36:18
【问题描述】:
我正在使用来自 SDL 的函数,其中一个参数的类型为 const GLchar* const*,因此为了调用它,我需要传入一个 C 字符串的引用,如下所示:
const char *str = "test";
glShaderSource(... , &str, ...);
但是,我有一个 std::string 想要传入,并且执行这样的操作会报错:
std::string str = "test";
glShaderSource(... , &str.c_str(), ...);
我知道我可以简单地创建一个新的const char* 变量并将std::string 保存到其中,如下所示:
const char *cstr = str.c_str();
但是有没有办法解决这个问题?我不喜欢创建一个新变量。我尝试使用 lambda,但没有奏效。
【问题讨论】:
-
糟糕,这是个骗子。