ostream に問題があるため、パラメーターを出力する非常に基本的なマクロを作成しました。
以下のコード例を参照してください。
#define LOG Message(__FILE__, __LINE__,__func__)
class Message : public std::ostringstream
{
public:
Message(const char *param1, int param2, const char *param3)
{
*this<<param3<<"("<<param1<<":"<<param2<<")";
}
~Message()
{
*this<<endl;
cout<< rdbuf()->str();
}
};
int main()
{
int integer = 1;
string str = "XYZ";
LOG<<integer<<"DEBUGLOG1: "<<str<<" "<<integer;
return 0;
}
問題は、私が使用する場合です:
LOG << "LOG1: " << str << " " << integer;
出力には、値ではなく const char* "LOG1: " の Address* が出力されます。
しかし、私が使用する場合:
LOG << integer << "DEBUGLOG1: " << str << " " << integer;
出力は完全に機能し、整数値と char 値が出力されます。
使用する代わりにostream& operator<< (ostream& out, const char* s );
それは使用していostream& operator<< (const void* val);
ますか?
この過負荷を克服するために何ができるかについて、誰かが光を当てることができますか?
前もって感謝します