Я хочу «перейти» на С++ 17 и изучаю его.
Я обнаружил, что это:
https://gcc.godbolt.org/z/sPnsEM
#include <string_view>
#include <type_traits>
int main(){
return
(std::is_standard_layout_v<std::string_view> ? 10 : 20)
+
(std::is_trivial_v<std::string_view> ? 100 : 200)
+ (std::is_trivially_copyable_v<std::string_view> ? 1000 : 2000)
;
}
возвращает 1210, например. std::string_view
это standard_layout
и trivially_copyable
, но, как ни странно, это не trivial
.
Я проверил некоторую реализацию здесь:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/experimental/string_view
и я не вижу ни одного д-тора.
Это из-за его c-tors?