std :: from_chars не компилируется под MSVC - PullRequest
1 голос
/ 14 апреля 2020

У меня есть небольшая функция, которая использует std::from_chars для создания объекта даты из std::string_view, в то время как он компилируется с использованием clang или g cc в Ubuntu, но не использует msv c в windows.

date::year_month_day parseDate(const std::string_view& s)
{
    int y { 0 }, m { 0 }, d { 0 };

    std::from_chars(s.begin(), s.begin() + 4, y);
    std::from_chars(s.begin() + 5, s.begin() + 7, m);
    std::from_chars(s.begin() + 8, s.begin() + 10, d);

    return date::year { y } / m / d;
}

Для каждого из вызовов std::from_chars во время компиляции отображается следующая ошибка:

'std :: from_chars': ни одна из 14 перегрузок не может преобразовать все типы аргументов

Затем компилятор составляет список возможных перегрузок, и я ясно вижу, что я пытаюсь использовать:

'std :: from_chars_result std :: from_chars (const char * const, const char * const, int &, const int) noexcept '

Последний параметр имеет значение по умолчанию. Может кто-нибудь объяснить мне, что я делаю не так?

1 Ответ

1 голос
/ 14 апреля 2020

Как упомянуто Некоторые программисты чувак и Ruks , std::string_view.begin() не возвращают const char *const, std::string_view.data() был метод, который я искал.

...