gpt4 book ai didi

c++ - 尝试比较 regex_iterators 时为 "Invalid operands to binary expression ..."

转载 作者:行者123 更新时间:2023-11-27 23:01:34 29 4
gpt4 key购买 nike

我有几行简单的代码

std::regex_iterator<std::string::const_iterator>
regit (attributesStart, _curIter, _attributeRegex),
regend(std::regex_iterator<std::string::const_iterator>);

while (regit != regend)
{
// [...]
}

编译器提示 while 行,说

Invalid operands to binary expression ('std::regex_iterator' and 'std::regex_iterator (*)(std::regex_iterator)')

知道这是为什么吗?

最佳答案

int main()
{
int i = 0, f(int);
f(i);
}

int f(int) {return 0;}

Is valid code .有一个 block 作用域函数声明 f里面main , 在与 i 相同的 init-declarator-list 中,这是一个通常的 int .

您的情况也是如此,只是方式更复杂。这里声明的函数是regend并且有一个类型为 std::regex_iterator<..> 的参数- 您也可以通过检查错误消息来推断这一点。
使用std::regex_iterator<std::string::const_iterator>()无法解决问题。 ;那么参数将是一个指向函数的指针,但是 regend不是变量。
使用统一初始化(即 {} )或双括号来避免这种情况。

关于c++ - 尝试比较 regex_iterators 时为 "Invalid operands to binary expression ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095102/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com