【发布时间】:2017-07-25 19:54:09
【问题描述】:
我正在阅读 Caffe 的源代码,我很好奇为什么 caffe 使用#define 来创建像 caffe.cpp 中的函数。
#define RegisterBrewFunction(func) \
namespace { \
class __Registerer_##func { \
public: /* NOLINT */ \
__Registerer_##func() { \
g_brew_map[#func] = &func; \
} \
}; \
__Registerer_##func g_registerer_##func; \
}
他们使用RegisterBrewFunction来注册函数,肯定有一些好处。他们可以只使用 if else 来决定调用哪个函数,谁能告诉我为什么要这样写代码。
【问题讨论】: