更新MySQL连接器后,隐式转换停止工作

时间:2019-07-03 19:46:39

标签: c++ mysql casting connector

我最近将MySQL Connector C ++升级到v8.0.16,这导致在项目编译期间发生问题。

所有错误均来自将“ mysql :: abi2 :: r0 :: Value”转换为不同类型。 例如,我的函数之一中包含以下代码:

std::string s; 
sql::Row res; 

... Fetching from database ... 

s = row[0]; // Here is the error 

我遇到的错误是:

  

没有合适的用户定义的转换,从“ mysqlx :: abi2 :: r0 :: Value”到   “ std :: string”存在

但是,如果我使用强制转换,则可以:

s = (std::string)row[0]; // No error here 

在以前版本的MySQL Connector C ++中,我没有这个问题。

我已经检查过,并且MySQL Connector的mysqlx :: abi2 :: r0 :: Value类确实实现了操作符std :: string,该操作符允许隐式转换,所以是否有任何原因导致我的代码无法正常工作? / p>

谢谢!

1 个答案:

答案 0 :(得分:1)

很显然,MySQL已经使std :: string和bool隐式转换现在是显式转换,因此这就是我的问题所在。