Почему в macosx Mojave 10.14 с gcc5 отсутствует заголовок charconv? - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь сделать несколько очень быстрых преобразований в C ++, и charconv кажется правильным, поскольку он использует логику очень низкого уровня. Проблема в том, что когда я пытаюсь включить этот заголовок и затем вызывать, скажем, std :: to_chars (...), ни заголовок не найден, ни std не имеет члена to_chars. Я обновил и переустановил gcc, но эта проблема все еще существует. Теперь я видел некоторые потоки, которые говорят, что я должен каким-то образом обновить libc ++ 17, но они не очень конкретны в отношении того, что я должен делать, поскольку в MacOS все немного по-другому.

Некоторый код для иллюстрации библиотеки и ее использования:

#include <iostream>
#include <typeinfo>

#include <charconv> //error: 'charconv' file not found

struct to_chars_result{
   char *str;
   std::errc err;
};


int main(int argc, const char * argv[]) {
    std::string str("12Test");

    auto result = std::to_chars(str.data(), str.data()+str.size(), 12345); //No
     //member named 'to_chars' in namespace 'std'.


    return 0;
}

Что касается вывода команды gcc -v:

COLLECT_GCC = НКА COLLECT_LTO_WRAPPER = / USR / местные / libexec / ССАГПЗ / x86_64-яблочно-darwin14.4.0 / 5.1.0 / lto- обертка Ziel: x86_64-apple-darwin14.4.0 Konfiguriert mit: ../gcc-5.1.0/configure --enable-languages ​​= c ++, fortran Thread-Modell: posix gcc-версия 5.1.0 (GCC)

Любая помощь приветствуется!

1 Ответ

3 голосов
/ 20 марта 2019

gcc 5.1 был выпущен 22 апреля 2015 года.

Документ, который добавил to_chars к стандарту C ++ 17, был написан в 2016 году.

Почему вы ожидаете, что gcc5будет реализовывать это?

[Позже: это была статья, которая также добавила заголовок <charconv>]

...