我有一个问题,如何使用更少的局部变量和符号(如“*”、“&”)使代码更具可读性
当我写这样的东西时:
inline std::string&
EmbraceBySQuote (
std::string& str ) {
str = "'" + str + "'";
return str;
} /* ----- end of function EmbraceBySQuote ----- */
我不能做这样的事情
fmter % ( *detail::EmbraceBySQuote ( &table.GetTableName ( ) ) );
table.GetTableName ( ) //returns std::string
我收到一个错误
invalid initialization of non-const reference of type ... from a temporary of type rvalue ...
指针也一样
inline std::string*
EmbraceBySQuote (
std::string* str ) {
*str = "'" + *str + "'";
return str;
} /* ----- end of function EmbraceBySQuote ----- */
fmter % ( *detail::EmbraceBySQuote ( &table.GetTableName ( ) ) );
taking address of temporary
所以我需要这样的东西
std::string tableName = table.GetTableName ( );
fmter % ( *detail::EmbraceBySQuote ( &tableName ) );
您知道如何在不创建新变量和使用引用的情况下使其更简单吗?