根据GCC 8 Release Note,现在可以在常量表达式中使用std::char_traits<char>
and :std::char_traits<wchar_t>
- 改进了对 C++17 的实验性支持,包括以下功能:
- std::char_traits 和 std::char_traits<wchar_t> 可用于常量表达式。
std::char_traits<char>
我在这里的理解是在 GCC 8 之前你不能在常量表达式中使用。
但是,以下代码可以很好地与GCC 7.5一起编译:
#include <string_view>
int main() {
constexpr std::string_view sv{""};
constexpr std::size_t size = std::char_traits<char>::length(sv.data());
return 0;
}
那么,在 GCC 8 之前是否可以在常量表达式中使用 std::char_traits ?还是我错过了什么?