可以使用临时的stringstream对象吗?

这有效:

stringstream temp;
temp << i;
result_stream << transform(temp.str());

transform是一个接受astring并返回a的函数stringiis int)。但是,我尝试让C ++ 11创建一个没有名称的临时对象没有用:

result_stream << transform((stringstream() << i).str());

我认为它会起作用,因为第二个<<应该只返回第一个参数,并且我可以在上面使用str()它。但是我得到这个错误:

error: 'class std::basic_ostream<char>' has no member named 'str'

我正在使用g ++ 4.8.1(MinGW-W64)。

有没有办法做到这一点(即使用一个未命名的临时代码编写这样的代码)?(上面的代码做了一些简化,实际代码涉及使用以外的<<on参数int。)

MM

这不起作用,因为第二个<<std::ostream &operator<<(std::ostream &, int);,所以返回类型是ostream&没有成员的str()

您将必须编写:

result_stream << transform( static_cast<stringstream &>(stringstream() << i).str() );

更新(2019):根据LWG 1203,该标准可能会在将来更改(并且已经有一个主要实现),因此该代码不再有效,而是使用更简单的代码。有关详细信息,请参见此问题

在过渡时期,显然,以下内容适用于新旧项目:

result_stream << transform( static_cast<stringstream &>(stringstream().flush() << i).str() );
//                                                                    ^^^^^^^^

应该不是一个性能损失,因为冲洗空流没有影响?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用需要强制转换的对象成员而不使用临时变量吗?

来自分类Dev

我可以禁止使用临时对象作为参数吗?

来自分类Dev

您可以使用stringstream安全地进行双向转换吗?

来自分类Dev

您可以使用stringstream安全地进行双向转换吗?

来自分类Dev

我可以使用assign复制对象的对象吗?

来自分类Dev

我可以访问临时对象的成员吗?

来自分类Dev

我可以使用某种本地存储作为近RTC的getUserMedia的临时存放地吗?

来自分类Dev

我可以使用临时/替代的neo4j图进行测试吗?

来自分类Dev

我可以使用智能按钮显示临时付款确认吗?

来自分类Dev

我可以使用watir-webdriver临时更改驱动程序吗?

来自分类Dev

SQL引擎/优化器可以使用临时表执行查询吗?

来自分类Dev

在FreeBSD中可以使用ubuntu的共享对象库吗?

来自分类Dev

我可以使用ObjectID设置解析对象指针吗

来自分类Dev

我可以使用printf()打印该类的对象吗?

来自分类Dev

可以使用switch语句确定对象的类吗?

来自分类Dev

可以使用while函数创建x个对象吗?

来自分类Dev

可以使用Graphics g绘制Area对象吗?

来自分类Dev

我可以使用ObjectID设置解析对象指针吗

来自分类Dev

可以使用 joblib 转储多个对象吗?

来自分类Dev

我可以使用右值引用来临时吗?它是未定义的行为吗?

来自分类Dev

您可以使对象“可调用”吗?

来自分类Dev

在Laravel中,您可以使用对象的主键检查对象是否在Collection中吗?

来自分类Dev

我可以使用日期对象作为JSON对象javascript中的键吗?

来自分类Dev

DAO可以使用本身封装了dataSource对象的对象吗?

来自分类Dev

我可以在C ++中移动临时对象的属性吗?

来自分类Dev

是否可以使用mkdtemp定义临时目录的名称?

来自分类Dev

您可以使用变量名来引用对象而不使用eval()吗?

来自分类Dev

我可以使用对象的单击命令,使用继承来删除重复代码吗?

来自分类Dev

使用 setstate 时,我可以使用如下所示的简单对象吗?

Related 相关文章

  1. 1

    我可以使用需要强制转换的对象成员而不使用临时变量吗?

  2. 2

    我可以禁止使用临时对象作为参数吗?

  3. 3

    您可以使用stringstream安全地进行双向转换吗?

  4. 4

    您可以使用stringstream安全地进行双向转换吗?

  5. 5

    我可以使用assign复制对象的对象吗?

  6. 6

    我可以访问临时对象的成员吗?

  7. 7

    我可以使用某种本地存储作为近RTC的getUserMedia的临时存放地吗?

  8. 8

    我可以使用临时/替代的neo4j图进行测试吗?

  9. 9

    我可以使用智能按钮显示临时付款确认吗?

  10. 10

    我可以使用watir-webdriver临时更改驱动程序吗?

  11. 11

    SQL引擎/优化器可以使用临时表执行查询吗?

  12. 12

    在FreeBSD中可以使用ubuntu的共享对象库吗?

  13. 13

    我可以使用ObjectID设置解析对象指针吗

  14. 14

    我可以使用printf()打印该类的对象吗?

  15. 15

    可以使用switch语句确定对象的类吗?

  16. 16

    可以使用while函数创建x个对象吗?

  17. 17

    可以使用Graphics g绘制Area对象吗?

  18. 18

    我可以使用ObjectID设置解析对象指针吗

  19. 19

    可以使用 joblib 转储多个对象吗?

  20. 20

    我可以使用右值引用来临时吗?它是未定义的行为吗?

  21. 21

    您可以使对象“可调用”吗?

  22. 22

    在Laravel中,您可以使用对象的主键检查对象是否在Collection中吗?

  23. 23

    我可以使用日期对象作为JSON对象javascript中的键吗?

  24. 24

    DAO可以使用本身封装了dataSource对象的对象吗?

  25. 25

    我可以在C ++中移动临时对象的属性吗?

  26. 26

    是否可以使用mkdtemp定义临时目录的名称?

  27. 27

    您可以使用变量名来引用对象而不使用eval()吗?

  28. 28

    我可以使用对象的单击命令,使用继承来删除重复代码吗?

  29. 29

    使用 setstate 时,我可以使用如下所示的简单对象吗?

热门标签

归档