如果它是输入范围的最后一个元素,为什么 views::split 忽略分隔符后的空子范围?

cig*_*ien 6 c++ range-v3 c++20 std-ranges

对于以下代码

#include <iostream>
#include <string>
#include <ranges>

int main() 
{
    std::string s = " text ";
    auto sv = std::ranges::views::split(s, ' ');                    
    std::cout << std::ranges::distance(sv.begin(), sv.end());
}
Run Code Online (Sandbox Code Playgroud)

输出为 2。输出范围中不存在最后一个分隔符之后的空子范围。

这似乎不一致,因为N+1如果N输入范围中出现分隔符,我希望输出范围中有子范围。为什么不是这样?

请注意 range-v3 做的完全一样,所以我确定这是故意的,但我想知道为什么。