lambda 编译错误
A lambda compilation error
我在代码中编写了以下lambda表达式:
auto fnd_rpt_chrs = [&] (string::iterator& iter_arg) {
for(auto iter = iter_arg + 1; iter != s2.end(); ++iter){
if(*iter == *iter_arg)
return true;
}
return false;
};
在其他地方,我通过以下方式调用 lambda:
void some_function(string const& s2){
auto iter = s2.begin();
fnd_rpt_chrs(iter);
}
对于上述情况,我收到以下编译错误:
没有从"std::__1::__wrap_iter"到 'string::itrator &' (又名 '__wrap_iter &'( 表示第一个参数
有人可以指出我在这里错过了什么吗?
蒂亚
维诺德
iterator
和 const_iterator
之间不匹配(此外,迭代器可以按值传递(,您可以将 lambda 更改为:
auto fnd_rpt_chrs = [&] (string::const_iterator iter_arg) {
for (auto iter = iter_arg + 1; iter != s2.end(); ++iter){
if(*iter == *iter_arg)
return true;
}
return false;
};
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译