C++中错误no matching function for call to transform
transform(str.begin(), str.end(), str.begin(), toupper);
将str转为大写
编译error:no matching function for call to ‘transform(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, )
这个函数的定义:
template OutIter transform(InIter start, InIter end, OutIter result, Func unaryFunc)
它要求参数和返回值都要是char。Linux中将toupper实现为一个宏而不是函数:
/usr/lib/syslinux/com32/include/ctype.h:
/* Note: this is decimal, not hex, to avoid accidental promotion to unsigned */
#define _toupper(__c) ((__c) & ~32)
#define _tolower(__c) ((__c) | 32)
__ctype_inline int toupper(int __c)
{
return islower(__c) ? _toupper(__c) : __c;
}
__ctype_inline int tolower(int __c)
{
return isupper(__c) ? _tolower(__c) : __c;
}
有三种解决方法:
1.因为在全局命名空间中有实现的函数(而不是宏),所以重新明确命名空间,这并不是总奏效,但是在g++环境中没有问题:
transform(str.begin(), str.end(), str.begin(), ::toupper);
2.自己重写一个函数
inline char charToUpper(char c)
{
return std::toupper(c);
}
3.强制转化:将toupper转换为一个返回值为int,参数只有一个int的函数指针。
transform(str.begin(), str.end(), str.begin(), (int (*)(int))toupper);
4.补充。LAMBDA表达式
transform(str.begin(), str.end(), str.begin(), [](int c) {return toupper(c); });
原文:https://blog.csdn.net/winting_qiqi/article/details/21397211
C++中错误no matching function for call to transform相关推荐
- 【C++错误处理】no matching function for call to transform
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 初学C++哈,不知道这个错误是不是很silly,高手轻拍.情况如下: #include #include #in ...
- Android之jni编译出现no matching function for call to ‘_JNIEnv::GetJava(JNIEnv* , Java VM**)‘解决办法)‘
1.问题 jni编译出现这个错误 no matching function for call to '_JNIEnv::GetJava(JNIEnv* &, Java VM**) 2.原因 自 ...
- 【错误记录】Visual Studio 中编译 NDK 报错 ( no matching function for call to ‘cacheflush‘ cacheflush(); )
文章目录 一.报错信息 二.报错信息 一.报错信息 使用 Visual Studio 2019 编译 Android 平台的 NDK 项目 ; 编译时报错 ; 报错信息 : 1>./native ...
- QT编程错误解决——error: no matching function for call to
实现信号与槽函数绑定机制中出现如下错误: error: no matching function for call to 'Widget::connect(QPushButton*&, voi ...
- 神经网络中,设计loss function有哪些技巧?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:视学算法 神经网络中,设计loss function有哪 ...
- JavaScript中错误正确处理方式,你用对了吗? 1
JavaScript的事件驱动范式增添了丰富的语言,也是让使用JavaScript编程变得更加多样化.如果将浏览器设想为JavaScript的事件驱动工具,那么当错误发生时,某个事件就会被抛出.理论上 ...
- php js 报错信息,JavaScript中错误异常的分析(附示例)
本篇文章给大家带来的内容是关于JavaScript中错误异常的分析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我的建议是不要隐藏错误,勇敢地抛出来.没有人会因为代码出现 ...
- c语言中错误c2062,C/C++编译器错误消息大全
C/C++编译器错误消息大全 初始值设定项可能括在了括号中.为避免该问题,请将声明符括在括号中或使其成为 typedef. 在编译器将表达式作为类模板参数检测时也可能导致此错误;使用 typename ...
- matlab nargin不对称,在matlab中错误使用 nargin
错误: 文件:dfun.m 行:30 列:4
未结束的...
在matlab中错误使用 nargin 错误: 文件:dfun.m 行:30 列:4 未结束的 |浏览2420次 2017/12/05 15:54 在matlab中错误使用 nargin 错误: 文件 ...
最新文章
- pandas 删除 csv 中 unnamed 列
- 活久见!北大博士干了半年外卖骑手,写出 AI 伦理论文登上顶刊,“系统知道一切”...
- log4j配置不生效
- wukong引擎源码分析之搜索——docid有序的数组里二分归并求交集,如果用跳表的话,在插入索引时会更快...
- java操作js文件_JS操作文件
- Java各种数据类型的转换
- 数据结构 3-0 栈与队列总结
- Fiddler Everywhere 3.2.1 Crack
- 学生宿舍管理系统需求分析
- Ti的C28x系列的DSP(28069)(28377D)使用经验,CMD文件
- 《高效能人士的七个习惯》阅读笔记
- .Net Core裁剪图片并存入数据库
- MSDC 4.3 接口规范(23)
- python导入随机库_怎么用python导入随机库?
- 服务器系统安装——以Dell R710为例
- 区块链+慈善究竟帮助过谁?
- 算法作业2:分而治之 (持续更新)
- phpcms之管理栏目添加单网页遇到的英文名称已经存在的问题
- 乖乖,很想读给你的诗--[人生]
- 关于万网虚拟主机如何建立多个网站