为什么operator <<不会隐式将我的定制类对象转换为字符串

烘烤ZQ

我有一个实现公共string转换成员函数的类。当与结合使用时operator<<(iostream &, xxx),我期望我的类将自动(隐式)转换为string适合于参数类型。

但是,事实并非如此。为什么,我不想编写operation<<函数。

#include <string>
#include <iostream>

using namespace std;

struct A {
    operator string() { return "asd"; }
};

int main() {
    cout << A() << endl;  // error
    cout << string(A()) << endl; // ok
}

songyuanyao

operator<<std::string是一个模板,隐式转换不会被视为模板参数推导,这将失败。

类型推导不考虑隐式转换(上面列出的类型调整除外):这是超载解析的工作,稍后会发生。

如您所显示,您可以显式转换Astd::string,或编写operator<<for A

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么nodejs将我的对象键字符串转换为对象文字?

来自分类Dev

为什么javascript / typescript隐式将日期对象转换为字符串?

来自分类Dev

为什么字符串不能转换为对象类

来自分类Dev

为什么Powershell将我的哈希表转换为字符串块

来自分类Dev

当将我的nullable int转换为字符串时,为什么null合并运算符不起作用?

来自分类Dev

为什么`join`和/或`JSON :: to_json`默默地将我的数据从整数转换为字符串?

来自分类Dev

当字符串在 HIVE 中隐式转换为 int 时会发生什么?

来自分类Dev

为什么在发布方法后,我的整数对象会自动转换为字符串?

来自分类Dev

为什么我不能调用 operator()?

来自分类Dev

为什么 JavaScript 在使用对象作为键时隐式字符串化参数值?

来自分类Dev

Delphi将我的对象编组为字符串泄漏,但是为什么呢?

来自分类Dev

C ++:为什么为字符串定义了'operator + ='而不是'operator +'?

来自分类Dev

为什么bool(val)比val.operator bool()更喜欢双隐式转换?

来自分类Dev

为什么重载的'operator <'应该是类的const?

来自分类Dev

为什么std :: sort不使用我的operator <实现

来自分类Dev

为什么 operator<< 重载改变了我的变量的值?

来自分类Dev

为什么我的C ++类中的重载operator +不需要实现为operator-?

来自分类Dev

为什么GSON会将对象数组转换为字符串数组呢?

来自分类Dev

将对象用作地图时,其键始终会转换为字符串。为什么?

来自分类Dev

为什么要在 Javascript 中将对象中的所有值转换为字符串?

来自分类Dev

为什么我的字符串不会是XOR?

来自分类Dev

为什么字符串无法从Javascript转换为PHP?

来自分类Dev

为什么将C ++字符串转换为int?

来自分类Dev

UIColor转换为字符串失败,为什么?

来自分类Dev

为什么将此字符串值转换为数组?

来自分类Dev

为什么字符串不能转换为日期时间?

来自分类Dev

为什么我的常量整数类型会转换为字符串?

来自分类Dev

为什么我的tableadaptor强制在日期列上强制转换为字符串

来自分类Dev

为什么我的循环变量不能转换为字符串?

Related 相关文章

  1. 1

    为什么nodejs将我的对象键字符串转换为对象文字?

  2. 2

    为什么javascript / typescript隐式将日期对象转换为字符串?

  3. 3

    为什么字符串不能转换为对象类

  4. 4

    为什么Powershell将我的哈希表转换为字符串块

  5. 5

    当将我的nullable int转换为字符串时,为什么null合并运算符不起作用?

  6. 6

    为什么`join`和/或`JSON :: to_json`默默地将我的数据从整数转换为字符串?

  7. 7

    当字符串在 HIVE 中隐式转换为 int 时会发生什么?

  8. 8

    为什么在发布方法后,我的整数对象会自动转换为字符串?

  9. 9

    为什么我不能调用 operator()?

  10. 10

    为什么 JavaScript 在使用对象作为键时隐式字符串化参数值?

  11. 11

    Delphi将我的对象编组为字符串泄漏,但是为什么呢?

  12. 12

    C ++:为什么为字符串定义了'operator + ='而不是'operator +'?

  13. 13

    为什么bool(val)比val.operator bool()更喜欢双隐式转换?

  14. 14

    为什么重载的'operator <'应该是类的const?

  15. 15

    为什么std :: sort不使用我的operator <实现

  16. 16

    为什么 operator<< 重载改变了我的变量的值?

  17. 17

    为什么我的C ++类中的重载operator +不需要实现为operator-?

  18. 18

    为什么GSON会将对象数组转换为字符串数组呢?

  19. 19

    将对象用作地图时,其键始终会转换为字符串。为什么?

  20. 20

    为什么要在 Javascript 中将对象中的所有值转换为字符串?

  21. 21

    为什么我的字符串不会是XOR?

  22. 22

    为什么字符串无法从Javascript转换为PHP?

  23. 23

    为什么将C ++字符串转换为int?

  24. 24

    UIColor转换为字符串失败,为什么?

  25. 25

    为什么将此字符串值转换为数组?

  26. 26

    为什么字符串不能转换为日期时间?

  27. 27

    为什么我的常量整数类型会转换为字符串?

  28. 28

    为什么我的tableadaptor强制在日期列上强制转换为字符串

  29. 29

    为什么我的循环变量不能转换为字符串?

热门标签

归档