Если у вас нормально фиксированное значение по умолчанию для типа, вы можете создать тип, чтобы определить его как константу и специализировать его по мере необходимости.
template <typename T> struct MyTypeDefault { static const T value; };
template <typename T> const T MyTypeDefault<T>::value = T();
template <> struct MyTypeDefault<double> { static const double value; };
const double MyTypeDefault<double>::value = 1.0;
template <typename T>
class MyType {
public:
MyType() { value = MyTypeDefault<T>::value; }
private:
T value;
};
Если у вас есть C ++ 11, вы можете используйте constexpr при определении значения по умолчанию. С C ++ 14 MyTypeDefault может быть переменной шаблона, которая синтаксически немного чиста.
//C++14
template <typename T> constexpr T MyTypeDefault = T();
template <> constexpr double MyTypeDefault<double> = 1.0;
template <typename T>
class MyType {
private:
T value = MyTypeDefault<T>;
};
Сценарий поиска для квазипа называется FindQuaZip5.cmake (переименовывается во время установки). Так что для поиска quazip
вам нужно использовать
find_package(QuaZip5)
Значение скрипта поиска описано в его главе:
# QUAZIP_FOUND - QuaZip library was found
# QUAZIP_INCLUDE_DIR - Path to QuaZip include dir
# QUAZIP_INCLUDE_DIRS - Path to QuaZip and zlib include dir (combined from QUAZIP_INCLUDE_DIR + ZLIB_INCLUDE_DIR)
# QUAZIP_LIBRARIES - List of QuaZip libraries
# QUAZIP_ZLIB_INCLUDE_DIR - The include dir of zlib headers
То есть для использования quazip
с [115 ] в своем коде добавьте эти строки:
include_directories(${QUAZIP_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${QUAZIP_LIBRARIES})