Использование скомпилированных заголовков c ++ 17 в более старой среде g ++ - PullRequest
0 голосов
/ 14 мая 2019

X-проблема: Создание библиотеки из файла cpp-header.

Y-проблема: возможно ли сделать c ++ 17-функциональнымидоступно в среде non-c ++ 17 ?

Я пробовал это через предварительно скомпилированный заголовочный файл:

$ g++-8 -c ../header.hpp -std=c++17 -fconcepts

Это генерирует ~ 22 МБФайл .hpp.gch, который я могу использовать здесь:

$ g++-8 main.cpp -Wall -Winvalid-pch

Но это не работает без -std=c++17.

Дополнительные примечания : Предположим, что header.hpp содержит что-то вроде этого:

template <typename A>
bool Function::Call( const A *const a) {
     if constexpr (std::is_same_v<double, A>) ...

ìf constexpr - это синтаксис, который работает только для стандарта, большего или равного c ++ 17

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...