regex_token_iterator*it ++ bug?

 手机用户2602886175 发布于 2023-02-13 14:43

用于以下代码:

#include
#include

using namespace std;

int main(int argc, char *argv[]) 
{
    regex reg("/");
    string s = "Split/Values/Separated/By/Slashes";
    sregex_token_iterator it{std::begin(s), std::end(s), reg, -1};
    sregex_token_iterator end;

    while(it != end)
    {
        cout << *it++ << endl;
    }

    return 0;
}

应该输出:

Split
Values
Separated
By
Slashes

但它输出这个:

Values
Separated
By

Slashes

主要代码可能是问题*it++,如果我写cout << *it << endl;++it;,它的工作正常.

当我将stand c ++ 11 regex更改为boost-regex时,*it++也正常工作.

我检查了正则表达式的头部,我认为该operator++(int)函数没有问题.

我的铿锵版是

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) 
Target: x86_64-apple-darwin13.0.0
Thread model: posix

有人有这样的问题吗?

clang中有错误吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有