这可能是一个愚蠢的错误,但我无法修复它。
in:https://github.com/jlettvin/greard-grep文件:gg_state.h/gg_state.cpp从gg_state.o
中不存在"关注"方法$ nm gg_state.o|grep follow
当它上方的"负载"方法
$ nm gg_state.o|grep load
存在。通过视觉检查,以下方法应出现在gg_state.o。
中暂时,在gg.cpp中复制了以下代码并在此编译,但它属于gg_state.cpp。实现该方法的代码位于两个文件的末尾,并且相同。复制定义不会失败,这是第二个指标,即编译器仅在gg_state.cpp中忽略了代码。
该方法的原始名称是搜索的,并更改了名称以避免与C 正则冲突。
该程序适当执行,因为GG.CPP具有所需的代码,但此方法应显示在gg_state.o。
中此应用使用G 7.1.0 -STD = C 17在Ubuntu Linux上编译16.04,并需要实验/文件系统和FMT/printf。测试框架是catch.hpp,但测试尚不强大。
为什么以下方法不出现在NM的输出中?
void
follow (void* a_pointer, auto a_bytecount, const char* a_label="");
auto
参数表示这是缩写的函数模板。在概念之外,对这些事情的支持是GCC扩展。
由于这是一个函数模板,因此关于您可以在何处和不能应用模板应用的通常规则。