小编Sid*_*idR的帖子

如何判断当前函数是C++ 11中的常规函数​​还是静态成员函数?

我会试着解释一下我要做的事情:

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宏进行任何更改,以便它 …

c++ static static-members c-preprocessor c++11

6
推荐指数
1
解决办法
219
查看次数

如何在一张图中的同一x轴上使用gnuplot绘制三个y轴?

如我的标题所述,对于某些特定比例的同一x轴,我需要绘制两个以上的y轴。有人可以告诉我该怎么做吗?

plot gnuplot

5
推荐指数
1
解决办法
5908
查看次数

如何通过我的gnuplot脚本检查终端是否可用?

我想在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?

gnuplot

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

MACOSX(BSD)等效于fcntl()函数的F_NOTIFY标志

在基于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()函数.

linux macos bsd fcntl

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

标签 统计

gnuplot ×2

bsd ×1

c++ ×1

c++11 ×1

c-preprocessor ×1

fcntl ×1

linux ×1

macos ×1

plot ×1

static ×1

static-members ×1