C++ 使用构造函数属性设置X';是否安全;什么是错误处理程序?

C++ 使用构造函数属性设置X';是否安全;什么是错误处理程序?,c++,c,gcc,x11,C++,C,Gcc,X11,我可以这样做而不遇到任何麻烦吗 static void set_handler() __attribute__((constructor)) { XSetErrorHandler(handler); } 有更好的方法吗?只是出于兴趣;你使用GCC构造函数扩展的任何原因,因为你写C++ +?@ OLICHARSLVESY,我想在调用其他X函数之前改变处理程序,构造函数是最明显的方法。有更好的方法吗?我想如果你知道你将一直使用GCC,那就没问题了。一种更具可移植性的技术是将所需的调用封装在一个

我可以这样做而不遇到任何麻烦吗

static void set_handler() __attribute__((constructor)) {
  XSetErrorHandler(handler);
}

有更好的方法吗?

只是出于兴趣;你使用GCC构造函数扩展的任何原因,因为你写C++ +?@ OLICHARSLVESY,我想在调用其他X函数之前改变处理程序,构造函数是最明显的方法。有更好的方法吗?我想如果你知道你将一直使用GCC,那就没问题了。一种更具可移植性的技术是将所需的调用封装在一个helper类中,并创建一个静态实例。在
main
?@OliCharlesworth中,首先要做的就是这样做。是的,我担心这将是最好的解决方案,尽管它更像样板。