制作用户定义的类 std::to_string-able

2023-12-21

我知道 Java 或 C# 似乎太多了。但是,是否有可能/好/明智地使我自己的类有效作为函数的输入std::to_string? 例子:

class my_class{
public:
std::string give_me_a_string_of_you() const{
    return "I am " + std::to_string(i);
}
int i;
};

void main(){
    my_class my_object;
    std::cout<< std::to_string(my_object);
}

如果没有这样的事情(我认为),最好的方法是什么?


什么是“最好”的方法是一个悬而未决的问题。

有几种方法。

首先要说的是超载std::to_string对于自定义类型是不允许。我们可能只专门化模板函数和类 in the std自定义类型的命名空间,以及std::to_string不是模板函数。

据说有一个好的治疗方法to_string很像一个运算符或一个实现swap。即允许参数依赖查找来完成工作。

因此,当我们想将某些内容转换为字符串时,我们可以这样写:

using std::to_string;
auto s = to_string(x) + " : " + to_string(i);

假设 x 是命名空间 Y 中类型 X 的对象,而 i 是 int,那么我们可以定义:

namespace Y {

  std::string to_string(const X& x);

}

现在这意味着:

调用to_string(x)实际上选择Y::to_string(const Y::X&), and

调用to_string(i)选择std::to_string(int)

更进一步,您可能希望 to_string 执行与运算符

namespace Y {

  inline std::ostream& operator<<(std::ostream& os, const X& x) { /* implement here */; return os; }

  inline std::string to_string(const X& x) {
    std::ostringstream ss;
    ss << x;
    return ss.str();
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作用户定义的类 std::to_string-able 的相关文章

随机推荐

  • 在 Numba 中计算 numpy 数组中非零值的数量

    很简单 我正在尝试计算用 Numba 编译的 NumPy jit 中的数组中非零值的数量 njit 我尝试过的以下操作是 Numba 不允许的 a a 0 size np count nonzero a len a a 0 len a le
  • 在 ReadTheDocs 上使用自定义主题

    我尝试使用从 Sphinx 的内置 ReadTheDocs 主题继承的自定义主题 当我在本地计算机上使用它时 我有很好的设计 但是当我阅读文档版本 从 gi thub 导入 时 没有 CSS 我错过了什么 使用自定义主题的分支的存储库 ht
  • Django Facebook Connect 应用推荐

    我想为我的 Django 网站实现 Facebook 连接登录 并且我已经检查了现有的应用程序 到目前为止 我已经找到了Django Socialauth http github com uswaretech Django Socialau
  • Julia 中有外部映射函数吗?

    我正在尝试构建四个向量 模型中的参数 的所有可能组合 这将为我提供一个大的 nx4 矩阵 然后我可以对每组 行 参数运行模拟 在 R 中我将通过使用来实现这一点expand grid在 Mathematica 风格中 我可以使用类似外积的东
  • Clojure 源代码中的父 eval(阅读器)函数?

    In 彼得 诺维格 http norvig com 史诗巨著人工智能编程范式 http norvig com paip html在第 7 章中 他描述了一个函数interp这实际上是一个简单的eval解释 REPL 中的基本方案时使用的函数
  • Django 过滤 ModelChoiceField 的查询集

    我一直在使用名为 ModelChoiceField 的表单字段并通过所有对象进行查询 但这并不完全是我打算使用它的目的 class PictureForm forms ModelForm Whiteboard forms ModelChoi
  • 是否有将资源嵌入 Linux 可执行映像的标准方法? [复制]

    这个问题在这里已经有答案了 通过 Windows API 将二进制资源嵌入到 PE 映像 EXE DLL 中非常容易 请参阅http msdn microsoft com en us library ms648008 v VS 85 asp
  • 为什么 PHPmailer 在发送后将 mime 标头打印到屏幕上?

    问题是 我刚刚实现了 PHPMailer 它在发送电子邮件后将 Mime 标头打印到屏幕上 我正在使用 GITHUB 上列出的最新 PHPMailer 代码 我几乎浏览了所有内容 但找不到打印到屏幕的任何原因 如果您需要更多信息 请告诉我
  • Java - windows/linux 中的控制台输出

    Java支持在输出到控制台时控制光标吗 例如 我想在执行 System out print 之前设置字符位置 可能还设置颜色 想想像 top 这样的应用程序写入控制台的方式 谢谢 您通常不使用 system out 来执行这些操作 nix
  • 如何使用关联常量来定义数组的长度? [复制]

    这个问题在这里已经有答案了 我有一个特征 它代表一个可以通过 UDP 套接字发送的实体 pub trait ToNetEnt const NET SIZE usize fn from net data u8 gt Self fn to ne
  • EL 方法中的参数

    我想在 JSP 中使用带有参数的 EL 方法 但 EL 不支持方法中的参数 实际上我想显示一个表格 其中有一个字段可以在一个单元格中输出值列表 对于每个单元格 此列表都会有所不同 这取决于参数 我该如何使用 EL 来做到这一点 我已经尝试过
  • 在 ngOnDestroy 函数中调用时如何等待 api 调用完成?

    我有一个场景 我必须在特定组件被销毁之前将数据发送到 api 数据库 正如 Angular2 生命周期中所描述的 在组件被销毁并调用之前执行一个方法ngOnDestroy 但正如文档中所指定的 这是一个 void 函数 因此它不会等待某些结
  • 将 IOSurface 绘制到另一个 IOSurface

    如何将一系列 IOSurface 绘制到另一个 然后将其绘制到屏幕上 我在 MultiGPU 示例项目中使用了苹果的一些源代码 但我能做的最好的事情就是绘制白屏或获得大量伪像并使应用程序崩溃 我对 openGL 很陌生 不太了解帧缓冲区和纹
  • 如何在一个 Include 后执行多个 ThenIninclude 导航道具

    对于 TestType 我想包含导航道具 Schoolclass 和 subject 我可以做一个 Include t gt t TestType ThenInclude x gt x Subject 但不是 Include t gt t
  • 跟踪约束的技术

    场景如下 我编写了一些带有类型签名的代码 GHC 抱怨无法推断出某些代码的 x yx and y 通常 您可以扔掉 GHC 并简单地将同构添加到函数约束中 但由于以下几个原因 这是一个坏主意 它并不强调理解代码 您最终可能会得到 5 个约束
  • 线程可以安全地读取VCL事件设置的变量吗?

    线程读取 Delphi VCL 事件设置的变量是否安全 当用户单击 VCL TCheckbox 时 主线程将布尔值设置为复选框的选中状态 CheckboxState CheckBox1 Checked 任何时候 线程都会读取该变量 if C
  • 在reactjs中将HTML表格复制到剪贴板

    我的 React 项目中有一个 HTML 表 我想将表格复制到剪贴板 table thead th Amount th th Charges th thead tbody tr item Amount tr tr item Charges
  • 仅当字段存在时才按字段排序

    我试图获取所有用户 并按另一个表上的字段对它们进行排序 但是该字段并不总是存在 用户 持有用户 用户元 保存元数据 特别是 权重 这是我想要排序的 一个更具体的解决方案是自动定义它们的默认权重 但是我是否可以让它在没有权重的情况下工作 当前
  • golang 服务器上的 CORS 和 javascript 获取前端

    我有一个 golang HTTP 服务器 代码如下 http HandleFunc login func w http ResponseWriter r http Request log Println New incoming reque
  • 制作用户定义的类 std::to_string-able

    我知道 Java 或 C 似乎太多了 但是 是否有可能 好 明智地使我自己的类有效作为函数的输入std to string 例子 class my class public std string give me a string of yo