私はこれを達成しようとしています:
#include <iostream>
#include <sstream>
void log(
const char* argFile,
int argLineNb,
const char* argFunction,
std::stringstream& argString) {
std::cout << argFile << ":" << argLineNb << " " << argFunction
<< " " << argString.str()<< std::endl;
}
/**
* \brief Macro declarations
*/
#define LOG_TEST(f) \
log(__FILE__, __LINE__, \
__FUNCTION__, (std::ostringstream << f))
int main(int argc, char** argv) {
LOG_TEST("HELLO");
LOG_TEST("HELLO" << " !");
return 0;
}
問題は、次のエラーが発生するため、その方法が本当にわからないことです。
型 'std::basic_ostream::__ostream_type {別名 std::basic_ostream の式からの型 'std::stringstream& {aka std::basic_stringstream&}' の参照の無効な初期化
ブーストでそれを行う簡単な方法があるかどうかはわかりません...
ソースは次のとおりです。