将固定大小的字符数组转换为std :: strings的最佳方法是什么?以下是我最好的猜测,但有兴趣听听是否还有其他选择。
std::string ToString(const char* buffer, const std::size_t bufferSize)
{
return std::string(buffer, strnlen_s(buffer, bufferSize));
}
int main()
{
char buffer1[4] = { 't','e', 's', 't' };
char buffer2[5] = { 'o','n', 'e', '\0', '\0' };
auto s1 = ToString(buffer1, sizeof(buffer1));
auto s2 = ToString(buffer2, sizeof(buffer2));
return 0;
}
答案 0 :(得分:1)
您的实施情况很好。
对于编译时知道长度的情况,您可能要做的另一件事就是提供另一个重载,可以从数组推断大小:
glGetTextureImage(textureToReadFrom, 0, GL_RGBA, GL_FLOAT, bufferSize, bufferPointer);