У меня есть небольшая функция, которая использует 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 '
Последний параметр имеет значение по умолчанию. Может кто-нибудь объяснить мне, что я делаю не так?