隐式转换为const字符串引用失败

纳布鲁克

为什么更改fromFooBarfrom的功能参数constnon-const导致不同的编译器错误?
或者换句话说:为什么Foo(false)还可以,而Bar(false)导致编译器错误?

#include <string>

void Foo(const std::string &test)
{
}

void Bar(std::string &test)
{
}

int main(int , char* [])
{
    Foo(false);
    Bar(false); // error C2664: 'Bar' : cannot convert parameter 1 from 'bool' to 'std::string &'

    return 0;
}
顺磁性羊角面包

当您使用bool参数调用函数时,编译器将寻求从可行的转换bool为参数具有的任何类型:const std::string &在第一种情况下,std::string &在第二种情况下。

std::string是可从构造的const char *,后者false为整数常量0,可隐式转换为(将导致nullptr)。因此,将构造一个临时字符串并将其绑定到const引用。

对于引用的非const版本,无法完成相同的操作,因为临时对象不是左值。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不能将字符串隐式转换为 int

来自分类Dev

从int转换为c字符串(const char *)失败

来自分类Dev

尝试创建新记录时“没有将符号隐式转换为字符串”

来自分类Dev

没有将文件隐式转换为字符串

来自分类Dev

尝试解析JSON数据时“没有将数组隐式转换为字符串”

来自分类Dev

嵌套属性错误:没有将字符串隐式转换为整数

来自分类Dev

在SQL Server中将数据从字符串隐式转换为int

来自分类Dev

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

来自分类Dev

RSpec-类型错误-没有将字符串隐式转换为整数

来自分类Dev

无法将类型字符串隐式转换为char

来自分类Dev

QML引擎未将布尔字符串QVarient隐式转换为bool属性

来自分类Dev

无法隐式转换为System.Net.Mail.MailAddress的类型字符串

来自分类Dev

没有将符号隐式转换为字符串,回形针和Rails 4

来自分类Dev

连接字符串。无法将'String'隐式转换为'System.Data.SqlClient.SqlConnection'

来自分类Dev

Ruby on Rails 4-CSV导入-没有隐式转换为字符串

来自分类Dev

Python错误:无法将字节隐式转换为字符串

来自分类Dev

无法将字符串隐式转换为Microsoft.Bot.Schema.Activity

来自分类Dev

无法在C#中的PrivateObject中将类型对象隐式转换为字符串

来自分类Dev

将字符串隐式转换为string_view

来自分类Dev

使用蹦床从嵌套数组创建树并将其隐式转换为字符串

来自分类Dev

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

来自分类Dev

在Rails上的ruby上没有将字符串隐式转换为整数

来自分类Dev

无法将类型void隐式转换为字符串C#

来自分类Dev

无法在C#中将类型字符串隐式转换为int

来自分类Dev

无法将类型委托隐式转换为字符串

来自分类Dev

不要求时将字符串转换为整数的隐式更改?

来自分类Dev

无法将类型字符串隐式转换为int ISSUE

来自分类Dev

错误无法将字符串文件路径上的类型“ void”隐式转换为“ string”

来自分类Dev

MySQL-设置将字符串隐式转换为数字吗?

Related 相关文章

  1. 1

    不能将字符串隐式转换为 int

  2. 2

    从int转换为c字符串(const char *)失败

  3. 3

    尝试创建新记录时“没有将符号隐式转换为字符串”

  4. 4

    没有将文件隐式转换为字符串

  5. 5

    尝试解析JSON数据时“没有将数组隐式转换为字符串”

  6. 6

    嵌套属性错误:没有将字符串隐式转换为整数

  7. 7

    在SQL Server中将数据从字符串隐式转换为int

  8. 8

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

  9. 9

    RSpec-类型错误-没有将字符串隐式转换为整数

  10. 10

    无法将类型字符串隐式转换为char

  11. 11

    QML引擎未将布尔字符串QVarient隐式转换为bool属性

  12. 12

    无法隐式转换为System.Net.Mail.MailAddress的类型字符串

  13. 13

    没有将符号隐式转换为字符串,回形针和Rails 4

  14. 14

    连接字符串。无法将'String'隐式转换为'System.Data.SqlClient.SqlConnection'

  15. 15

    Ruby on Rails 4-CSV导入-没有隐式转换为字符串

  16. 16

    Python错误:无法将字节隐式转换为字符串

  17. 17

    无法将字符串隐式转换为Microsoft.Bot.Schema.Activity

  18. 18

    无法在C#中的PrivateObject中将类型对象隐式转换为字符串

  19. 19

    将字符串隐式转换为string_view

  20. 20

    使用蹦床从嵌套数组创建树并将其隐式转换为字符串

  21. 21

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

  22. 22

    在Rails上的ruby上没有将字符串隐式转换为整数

  23. 23

    无法将类型void隐式转换为字符串C#

  24. 24

    无法在C#中将类型字符串隐式转换为int

  25. 25

    无法将类型委托隐式转换为字符串

  26. 26

    不要求时将字符串转换为整数的隐式更改?

  27. 27

    无法将类型字符串隐式转换为int ISSUE

  28. 28

    错误无法将字符串文件路径上的类型“ void”隐式转换为“ string”

  29. 29

    MySQL-设置将字符串隐式转换为数字吗?

热门标签

归档