首页 > 解决方案 > 在 C++17 中最有效地传递临时字符串文字?

问题描述

我确实尝试过寻找其他地方,但找不到完整的答案。

所以假设我有一个创建窗口的函数或类构造函数,该函数最有可能用字符串文字调用: auto myWindow = CreateWindow("Window Title");

我想知道编写函数/构造函数声明的最佳方法是什么,因为似乎有很多选项,例如 const string ref、string_view 或 C 样式的字符串文字。我还想知道右值字符串是否可能比 ref 更好,因为它可以移动并因此在函数堆栈中构造。我希望 CreateWindow 函数成为 API 的接口或包装器,例如 Qt、SDL 或直接与操作系统一起使用,因此字符串文字可能无论如何都会传递给另一个函数,因此它可能会转换为该函数的适当类型. 这个问题对我来说主要是教育性的,因为它对这个例子影响很小

我希望我能正确地遵循堆栈溢出礼仪,如果不是,请原谅我这是我第一次大声笑!

class Window
{
public:
    Window(const int Width, const int Height, STRING_LITERAL Title);
    virtual ~Window();
    Window(const Window& copy) = delete;
    Window& operator=(const Window& assign) = delete;
};

标签: c++stringc++17string-literalsstring-view

解决方案


推荐阅读