我会试着解释一下我要做的事情:
bool if_filter_applies() {return true;}
#defile LOGFILE if( if_filter_applies() ) LOG_STREAM_OBJECT
void globalFunc() { LOGFILE << "Some data \n"; }
class C {
int a;
bool if_filter_applies() {
if ( a == 1)
return true;
else
return false;
}
public:
void regMem () {
LOGFILE << "Some data\n";
}
static void staticMem() {
LOGFILE << "Some data\n";
}
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试修改LOGFILE定义,以便它只在基于成员函数的输出从类的成员函数中使用时才写入流if_filter_applies()
.
如果从类外部或静态成员函数中使用LOGFILE,我希望它使用Global if_filter_applies()
函数(总是返回true).
上面的代码没有编译,因为static void staticMem()
最终使用if_filter_applies()
类成员而不是全局.
我不想创建一个类似于#define LOGFILE
静态成员函数替换的不同定义,因为我们的代码中有数百个文件,我不想手动替换所有出现的内容.
那么我可以对#defile LOGFILE
宏进行任何更改,以便它 …
如我的标题所述,对于某些特定比例的同一x轴,我需要绘制两个以上的y轴。有人可以告诉我该怎么做吗?
我想在pngcairo终端可用的时候将终端设置为pngcairo而不是png,我不想手动检查它的可用性并且每次都更新我的脚本.
当pngcairo终端不可用时,我的脚本中出现以下错误:
set terminal pngcairo
^
"./script.gnuplot", line 7: unknown or ambiguous terminal type; type just 'set terminal' for a list
Run Code Online (Sandbox Code Playgroud)
如何在我的gnuplot脚本中测试pngcairo的可用性,以便在不存在时将终端设置为png?
在基于BSD的系统中,有没有人知道fcntl函数的F_NOTIFY标志的等价物?此标志允许您接收有关文件事件的通知(例如,文件已打开,文件已关闭,写入文件的字节数,从文件读取的字节数).此标志存在于Linux中,但在MACOSX(基于BSD的系统)中不存在.
来自linux的人引用:
文件和目录更改通知(dnotify)
int fcntl(int fd,int cmd,.../*arg*/);
F_NOTIFY(长整数)(Linux 2.4及更高版本)当fd引用的目录或其包含的任何文件发生更改时,提供通知.
实际上任何允许我接收文件事件的API对我来说都足够了.
有人知道F_NOTIFY是否有替代品?这时我只有一个想法:使用kqueue(),kevent()函数.