Почему boost строка дает ошибку с clang и c ++ 17? - PullRequest
0 голосов
/ 19 сентября 2018

Как заставить c ++ 17 работать с boost/algorithm/string.hpp и clang?

Эта программа test.cc:

#include <boost/algorithm/string.hpp>
#include <iostream>

int main() {
    std::cout << "hello" << std::endl;
}

при компиляции с clang++ -std=c++17 test.cc выдает эту ошибку:

В файле, включенном из test.cc:1: В файле, включенном в /usr/local/include/boost/algorithm/string.hpp:23: В файле, включенном в / usr / local /include / boost / алгоритма / string / split.hpp: 16: во включенном файле из /usr/local/include/boost/algorithm/string/iter_find.hpp:27: во включенном файле из / usr / local / include / boost /алгоритм / строка / find_iterator.hpp: 24: в файле, включенном в /usr/local/include/boost/algorithm/string/detail/find_iterator.hpp:18: в файле, включенном в / usr / local / include / boost / function.hpp: 30: в файл включен из /usr/local/include/boost/function/detail/prologue.hpp:17: в файл включен из /usr/local/include/boost/function/function_base.hpp:21: в файлвключено в /usr/local/include/boost/type_index.hpp:29: в файл включено из /usr/local/include/boost/type_index/stl_type_index.hpp:43: в файл включеноот /usr/local/include/boost/container_hash/hash.hpp:110: / Library / Developer / CommandLineTools / USR / включать / C ++ / v1 / опционально: 184: 1: ошибка: неизвестное имя типа '' _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS

и т. Д.

Я работаю на Mac с последней clang++ из xcode-select --install и последней версией буста от homebrew.

Моя буст-версия1.67 и clang++ версия:

Apple LLVM версия 9.1.0 (clang-902.0.39.2)

Если я изменю на -std=c++14, или еслиЯ вынимаю algorithm/string.hpp и вставляю что-то еще, например boost/lambda/lambda.hpp все в порядке.c++1z выдает ту же ошибку.

...