浏览twitter我发现了这个 C++23 代码示例。
这是我对它的改编,以使我感兴趣的内容更加明显(我不关心回复中提到的悬空问题)。
#include <vector>
#include <string_view>
#include <iostream>
#include <type_traits>
int main() {
std::vector v{84.72};
std::basic_string_view sv = v;
static_assert(std::is_same_v<decltype(sv), std::basic_string_view<double>>);
const auto val = *std::begin(sv);
std::cout << val;
}
我的问题是为什么没有一些要求/概念约束basic_string_view
以使其仅适用于 char ish类型,因此basic_string_view<double>
在此示例中不会编译?