0x00 缘起
今天有个同事A君在技术群里发了一个如下c++的问题:
在如下代码中
#define REGISTER_FACTORY(FACTORY, BASE) \
void forceStaticLink##FACTORY() {} \
static Envoy::Registry::RegisterFactory</* NOLINT(fuchsia-statically-constructed-objects) */ \
FACTORY, BASE> \
FACTORY##_registered
空函数的作用
void forceStaticLink##FACTORY() {}
0x01 分析
我有点兴趣,查看了网上无果,没有明确说明这个的作用是什么。
群里的B君猜测是继承方面的用途,但是A君查看用途与定义,不应该往继承方面去考虑。
我当时觉得,这个函数名称来看,在运行时应该不用用到,所以就认为应该是编译告警相关,但是A君测试无告警。
A君自己认为这个应该是检查FACTORY是否合法,依据应该是c++语法。
寥寥几条消息,本以为这个问题会沉了。但是意想不到的事情发生了。
0x02 转机
B君在github上看到了