小编use*_*523的帖子

错误记录C++预处理器宏__LINE __,__ FUNCTION__

我试图将一个简单的错误记录合并到我现有的应用程序中,此时它只报告错误使用,cout所以我希望使用<<运算符保持类似的界面.但是我希望它记录行和函数发生的错误,但我不想__LINE__, __FUNCTION__每次需要记录时都要输入.有没有人知道我可以用来允许__LINE__宏在另一个函数中使用的技巧,而是报告调用行?希望有道理.

class myLogClass {
    uint8_t level;                  
public:                 
    bool operator<<( const char * input );          
};

bool myLogClass::operator<<( const char * input ) {
    logItInSQL( input );
    return true;
}
Run Code Online (Sandbox Code Playgroud)

而不是每次都这样

myLogClass << "Line No: " << __LINE__
    << " Function: " << __FUNCTION__
    << " Error: " << "This is my error to be logged";
Run Code Online (Sandbox Code Playgroud)

我想能够做到:

myLogClass << "This is my error to be logged";

bool myLogClass::operator<<( const char * input …
Run Code Online (Sandbox Code Playgroud)

c++ logging c-preprocessor

4
推荐指数
1
解决办法
9035
查看次数

重载<<运算符C++ - 指向类的指针

class logger {
 ....
};

logger& operator<<(logger& log, const std::string& str)
{
    cout << "My Log: " << str << endl;
    return log;
}

logger log;
log << "Lexicon Starting";
Run Code Online (Sandbox Code Playgroud)

工作正常,但我想使用指向类实例的指针.即

logger * log = new log();
log << "Lexicon Starting";
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,语法是什么?谢谢

编辑:编译器错误是

error: invalid operands of types 'logger*' and 'const char [17]' to binary 'operator<<'
Run Code Online (Sandbox Code Playgroud)

c++ pointers operator-overloading

3
推荐指数
3
解决办法
4927
查看次数