当前位置: 首页 > 知识库问答 >
问题:

从“char”到“const char*”的ALL_OF转换无效[-fpermissive]

魏兴邦
2023-03-14

我在编译代码时遇到了问题。

template<class InputIterator, class UnaryPredicate>
  bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred)
{
  while (first!=last) {
    if (!pred(*first)) return false;
    ++first;
  }
  return true;
}

我从http://www.cplusplus.com/reference/algorithm/all_of/?kw=all_of.拿了密码

我正在使用代码::块12.11,我有以下错误:

C:\用户\PC-HP\桌面\chiffre\romain\main.cpp||在实例化的'boolall_of(InputIterator,InputIterator,UnaryPredicate)[与InputIterator=__gnu_cxx::__normal_iterator

C:\用户\PC-HP\桌面\chiffre\romain\main.cpp|84|从这里需要|

C: \Users\PC-HP\Desktop\chiffre\romain\main。cpp |13 |错误:从“char”到“const char*”的转换无效[-fpermissive]|

c: \program files\codeblocks\mingw\bin..\lib\gcc\mingw 32\4.7.1\include\c\bits\basic_string。tcc | 214 |错误:正在初始化“std::basic_string”的参数1

||===生成完成:2个错误,2个警告(0分1秒)==|

第 84 行:

while(!all_of(romain.begin(), romain.end(), IsRoman))

这是我的整个代码:http://pastebin.com/k0KYNB6H我不使用c 11

共有2个答案

惠文彬
2023-03-14

< code>pred接受一个字符串,但是在表达式< code>pred(*first)中,您给它输入了一个< code>char。

晏阳飙
2023-03-14

根据您的错误消息,您的谓词采用一个< code>std::basic_string(可能实际上是一个< code>std::string),但是您正在迭代一个< code>char序列。这些不会转换为< code>std::string。你想传递一个谓词,比如

bool IsRoman(char c) {
    return ...;
}
 类似资料:
  • 我在尝试编写一个Arduino程序来读取通过串行连接处理发送的命令时遇到了一个小问题。处理应该通过串行连接向Arduino发送“H”或“L”。这个值在我的程序中以字符的形式存储,但当我尝试进行串行操作时。写入(“值:%c,val)”时,出现“从'const char*'到'const uint8_t*'的无效转换”错误。如果有人能帮我解决这个问题,那就太好了。我真的需要弄清楚这个值是什么,这样我才

  • 你好,我正在尝试创建一个程序路径并放入注册表文件中,但我一直出错。这是代码: 我得到的错误说 从“char*”到“unsigned char”[-fppermissive]的转换无效 我花了几个小时寻找解决方案,但我找不到。

  • 之前,我已经实施了此功能,并且它起到了作用: 我甚至可以用下面的东西检查我是否得到了正确的尺寸,一切都很好。 但是,在使用以下初始化尝试整个程序时,我得到了一个编译错误: 以下是错误消息: rbm. cpp:在函数“ululemexFunction(int, mxArray**, int, const mxArray**)”中:rbm. cpp: 570:64: error:从“int”到“int

  • 我想创建一个简单的3x3矩阵类,并能够通过下标操作符访问其内容。代码如下: 我希望能够访问数组的元素,无论矩阵的对象是常量还是非常量。但我从编译器中得到以下错误: 错误:从“const int*”到“int*”的转换无效[-fpermissive] 我做了一些研究,我有一个假设:也许,因为我已经将这个成员函数声明为const函数,在它的定义中,编译器将对象的所有不可变成员视为const成员(它掩盖

  • 问题内容: 我引用了Herbert Schildt的第3章:数据类型,变量和数组: 字符的范围是0到65535。没有负字符。标准字符集ASCII(通常称为ASCII)的范围始终为0到127,而扩展的8位字符集ISO- Latin-1的范围为0到255。由于Java旨在允许程序在全球范围内编写使用时,将使用Unicode表示字符是有意义的。只要整数在范围内,也可以将整数分配给char。 (which

  • 问题内容: 我一直在测试字符转换,并经历了以下过程: 任何人都可以解释为什么当我在字节中添加final后在1中可以正常工作吗? 问题答案: 当变量为时,编译器将自动内联其值为1的值。该值可表示为,即: 相当于 实际上,根据本节中有关变量的部分,将其视为常量: 原始类型或类型的变量,即,用一个编译时间常量表达式(§15.28)初始化,被称为 恒定变量 。