我最近将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>
谢谢!
答案 0 :(得分:1)
很显然,MySQL已经使std :: string和bool隐式转换现在是显式转换,因此这就是我的问题所在。