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