【发布时间】:2013-12-03 20:10:52
【问题描述】:
考虑以下代码:
QSqlQuery *queryQt; // represents a row in a database table
inline std::string getCString(size_t col) {
return queryQt->value(col).toString().toStdString();
}
其中queryQt->value(col).toString()表示数据库中行的特定列的字符串值。
让我们假设编译器已开启所有优化。
问题:是下面的代码:
std::string a = T.getCString(0);
相当于
std::string a = queryQt->value(col).toString().toStdString();
或到
std::string temp = queryQt->value(col).toString().toStdString();
std::string a = temp;
?
问题更新:
如果我在返回类型中添加 const 会有什么不同吗?
【问题讨论】:
-
你看过程序集吗?
-
@constantin 不是真的。这是代码的简化版本,我在其中返回 const 数据等。但是感谢您的提示..
-
由于允许复制省略,这可能会有所不同。但是你总是可以通过让你的ctors(和dtors)冗长来在你的编译器(和标志)中尝试它。
标签: c++ string inline-code