标签: string-span

为什么string_view构造函数不接受一对迭代器

boost中的string_ref和GSL中的string_span都没有定义带有一对迭代器的构造函数.这个决定的原因是什么?

通常这不是什么大问题,我可以像这样创建string_ref:

boost::string_ref s(start, std::distance(start, finish));
Run Code Online (Sandbox Code Playgroud)

但我希望构造函数采用一对迭代器的原因是因为我的代码看起来像这样:

template<typename Type, typename Iterator>
void func(const Iterator& begin, const Iterator& end)
{
    Type s(begin, end);
    //do stuff with s
}
Run Code Online (Sandbox Code Playgroud)

目前,我可以这样称呼它:

func<std::string>(start, finish)
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

func<boost::string_ref>(start, finish) //compile error
Run Code Online (Sandbox Code Playgroud)

但是该代码将无法编译,因为缺少构造函数在string_ref中使用一对迭代器

c++ string-view string-span

7
推荐指数
2
解决办法
1556
查看次数

gsl::string_span 和 std::string_view 有何不同?

据我所知,gsl::string_spanstd::string_view似乎有本质上使用的同一个道理。真的是这样吗?如果是这样,它们实际上是否相同?如果不是 - 它们有什么不同?

相关问题:`gsl::string_span` 的目的是什么?

string-view guideline-support-library string-span

5
推荐指数
1
解决办法
1150
查看次数