c++ - 在 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;
};
解决方案
推荐阅读
- python - 为 LSTM 模型定义目标和训练值
- c# - 没有使用 EntityFramework Core 在 ASP.NET 核心的类中初始化 DBContext 的对象
- facebook-graph-api - Facebook Graph API V11,video_insights 自和直到参数都不起作用?
- python - 选择两个日期之间的行 - 最近 3 个月 -
- python - 从其他装饰器访问参数化参数
- python - 使用 Jupyter / Anaconda 的 pdftocairo 缺少字体
- html - 在 Apple 设备中悬停时出现 CSS 故障
- python - 插入片段后删除 $TM_CURRENT_LINE
- oh-my-zsh - Windows 终端 + oh-my-posh 未显示 git 状态
- wordpress - 如何在 Wordpress 中使用 Twig/Timber 调整主题文件夹中的图像大小