c++stringqtqdebug

qDebug() not showing const std::string&


I am trying to use some vector data's name with struct. I am trying to get see which name in qDebug()

To be more clear:

const std::string& testName = "asdfqwer";
qDebug() << testName;

It gives en error message in build:

Error: no match for 'operator<<' in 'qDebug()() << testName'

I don't have options to change const std::string& type. Could you please help me to solve this issue without changing type?


Solution

  • qDebug() does not know anything about std::string but it works with const char*. Appropriate operator you can find here. You can achieve this with data() or with c_str() which is better as Jiří Pospíšil said.

    For example:

    const std::string& testName = "asdfqwer";
    qDebug() << testName.data() << testName.c_str();
    

    Aslo you can convert std::string to QString with QString::fromStdString.