问题描述
...
ATTRIBUTE_PROBLEM getAttrWithCustomType(const std::string& attrName) {
auto attr = std::find_if(
attributes.cbegin(),attributes.cend(),[&attrName](const auto& pair) { return pair.first == attrName; }
...
}
std::vector<std::pair<std::string,std::string>> attributes;
我的 CMake 文件中的配置:
set_target_properties(HlsParser PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_required YES
CXX_EXTENSIONS NO
)
gcc 版本:gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
如果这段代码写在 .hpp 文件中,我会得到下一个错误。这是预期的行为,C++11 不支持泛型 lambda。
error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
[&attrName](const auto& pair) { return pair.first == attrName; }
我的问题:
但是,如果我将此代码放入 .cpp 文件中,则编译时不会出错。有人能解释一下这种行为吗?
已编辑 (07.07.2021)
项目示例:https://github.com/ValentinNikin/TempCMakeProject
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)