Можно ли использовать std::char_traits <char> в постоянных выражениях до GCC 8?

Согласно примечанию к выпуску GCC 8, теперь можно использоватьstd::char_traits<char> а также std::char_traits<wchar_t> в постоянных выражениях:

  • Улучшенная экспериментальная поддержка C++17, включая следующие функции:
    • std::char_traits и std::char_traits можно использовать в постоянных выражениях.

Я понимаю, что вы не можете использовать 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;
}

Итак, можно ли использовать std::char_traits в постоянных выражениях до GCC 8? Или я что-то упускаю?

1 ответ

Решение

Это улучшение было перенесено из основной ветки. Он доступен в линейке gcc 7 начиная с 7.3.

Другие вопросы по тегам