类字符串对象的概念

Concept for string-like object

标准库中有类字符串对象的概念吗? 我的意思是

template<typename T>
concept StringLike = requires(T x) {
   /* is same as const char*, char*, std::string etc */
}

有一个关于手工制作的问题 Type trait for strings。但是我找不到任何关于概念的信息。为什么它不包含在 std 中?

基于

/* is same as const char*, char*, std::string etc */

答案是不,与const char*char*std::string没有什么相同之处,因为它们是不同的类型。好吧,const char* 只是一个不可修改的 char*,但是 std::string 是完全不同的东西。没有什么可以同时与 std::stringchar* 相同,就像没有整数可以既等于又不等于 0.

我在寻找函数的概念,它只接受 const char*、char* 和字符串

template<class T>
concept StringLike = std::is_convertible_v<T, std::string_view>;

对我有用:)