C++20标准空路径规范化步骤疑问:步骤1与步骤8的逻辑冲突
C++20路径规范化步骤1与步骤8的逻辑说明
你疑惑的核心是两个步骤里的“路径为空”对应完全不同的场景:
- 步骤1中的“路径为空”指初始输入的路径本身就是空的,这种情况下会直接终止规范化流程,不会执行后续任何步骤。
- 步骤8中的“路径为空”指经过步骤2到7的处理后,原本非空的路径被处理成了空,此时才会触发添加一个点的操作。
举个实际场景:如果输入路径是./(当前目录标识加目录分隔符),经过步骤4移除点文件名及紧随的分隔符后,路径就变成了空。这时候流程会执行到步骤8,给空路径补上一个点,最终规范化结果为.。
如果一开始输入的就是空路径,步骤1会直接终止流程,不会走到步骤8,此时规范化结果就是空路径。
内容的提问来源于stack exchange,提问作者Chukwujiobi Canon
相关产品推荐
相关产品推荐

