Compare commits
No commits in common. "44817a8a946fda4ae54f2830ea63bb62db1b0537" and "18aa743a63cbf06bd835189023d15c37a7d1b0be" have entirely different histories.
44817a8a94
...
18aa743a63
@ -13,7 +13,6 @@ portability-*,
|
||||
-cppcoreguidelines-owning-memory,
|
||||
-cppcoreguidelines-avoid-magic-numbers,
|
||||
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
||||
-llvm-header-guard,
|
||||
-readability-magic-numbers,
|
||||
-readability-else-after-return,
|
||||
-modernize-use-trailing-return-type,
|
||||
@ -89,9 +88,9 @@ CheckOptions:
|
||||
- key: readability-identifier-naming.ConstexprMethodSuffix
|
||||
value: ''
|
||||
- key: readability-identifier-naming.ConstexprVariableCase
|
||||
value: CamelCase
|
||||
value: lower_case
|
||||
- key: readability-identifier-naming.ConstexprVariablePrefix
|
||||
value: 'k_'
|
||||
value: ''
|
||||
- key: readability-identifier-naming.ConstexprVariableSuffix
|
||||
value: ''
|
||||
- key: readability-identifier-naming.EnumCase
|
||||
@ -103,7 +102,7 @@ CheckOptions:
|
||||
- key: readability-identifier-naming.EnumConstantCase
|
||||
value: CamelCase
|
||||
- key: readability-identifier-naming.EnumConstantPrefix
|
||||
value: 'k'
|
||||
value: 'k_'
|
||||
- key: readability-identifier-naming.EnumConstantSuffix
|
||||
value: ''
|
||||
- key: readability-identifier-naming.FunctionCase
|
||||
@ -115,7 +114,7 @@ CheckOptions:
|
||||
- key: readability-identifier-naming.GlobalConstantCase
|
||||
value: CamelCase
|
||||
- key: readability-identifier-naming.GlobalConstantPrefix
|
||||
value: ''
|
||||
value: 'k_'
|
||||
- key: readability-identifier-naming.GlobalConstantSuffix
|
||||
value: ''
|
||||
- key: readability-identifier-naming.GlobalConstantPointerCase
|
||||
|
@ -15,11 +15,10 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
|
||||
|
||||
include(CMLibCommon)
|
||||
|
||||
option(MYXLIB_HEADER_ONLY "Build header only version of library" ON)
|
||||
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
|
||||
option(BUILD_EXAMPLES "Build examples" OFF)
|
||||
|
||||
# Поиск библиотек с помощью pkgconfig
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(PkgConfig)
|
||||
|
||||
# Потоки
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
@ -42,7 +41,7 @@ find_package(
|
||||
cmlib_config_hpp_generate()
|
||||
|
||||
configure_file(${CMAKE_SOURCE_DIR}/src/myx/base/config_flags.hpp.in
|
||||
${CMAKE_BINARY_DIR}/include/myx/base/config_flags.hpp)
|
||||
${CMAKE_BINARY_DIR}/include/config_flags.hpp)
|
||||
|
||||
# Подключение внешних проектов
|
||||
include(ExternalProject)
|
||||
@ -64,3 +63,4 @@ endif()
|
||||
|
||||
# Документация
|
||||
add_subdirectory(cmake/doc)
|
||||
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit e5fbb9023546a5e98c832e8596586c71edcc5b2f
|
||||
Subproject commit 2909f5a9d42ea4b0182329941a52b83e60c720d6
|
@ -10,5 +10,19 @@ set(CPACK_COMPONENTS_ALL EXAMPLES)
|
||||
set(CPACK_GENERATOR "TXZ;DEB")
|
||||
set(CPACK_PACKAGE_CONTACT "Andrei Astafev <dev@246060.ru>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mixed functions")
|
||||
|
||||
set(CMLIB_GENERATED_HEADERS_PATH ${CMAKE_BINARY_DIR}/include/myx/base)
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "misc")
|
||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||
set(CPACK_SOURCE_IGNORE_FILES
|
||||
.git/
|
||||
obj.*/
|
||||
build
|
||||
files/var
|
||||
debian/tmp/
|
||||
debian/files
|
||||
debian/.*\\\\.log$
|
||||
debian/.*.substvars
|
||||
debian/stamp.*
|
||||
CMakeLists.txt.user
|
||||
cmake/lib/.git$
|
||||
~$
|
||||
\\\\..*\\\\.swp$)
|
||||
|
@ -3,38 +3,35 @@ set(TRGT base)
|
||||
|
||||
# cmake-format: off
|
||||
# Список файлов исходных текстов
|
||||
set(TRGT_cpp
|
||||
set(TRGT_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/config.cpp)
|
||||
|
||||
# Список заголовочных файлов
|
||||
set(TRGT_hpp
|
||||
set(TRGT_headers
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/config.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/config-inl.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/limits.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/enum_bitmask_operations.hpp)
|
||||
|
||||
set(TRGT_headers ${TRGT_hpp})
|
||||
# cmake-format: on
|
||||
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers})
|
||||
common_target_properties(${TRGT})
|
||||
|
||||
# Создание цели для проверки утилитой clang-tidy
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clang-analyze
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clazy
|
||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clazy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой pvs-studio
|
||||
add_pvs_check(${TRGT})
|
||||
|
||||
# Создание цели для автоматического форматирования кода
|
||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
|
||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||
|
||||
cotire(${TRGT})
|
||||
|
||||
|
@ -1,10 +0,0 @@
|
||||
#ifndef MYX_BASE_CONFIG_INL_HPP_
|
||||
#define MYX_BASE_CONFIG_INL_HPP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MYXLIB_HEADER_ONLY
|
||||
#include <myx/base/config.hpp>
|
||||
#endif
|
||||
|
||||
#endif // MYX_BASE_CONFIG_INL_HPP_
|
@ -1,12 +1,6 @@
|
||||
#ifndef MYX_BASE_CONFIG_HPP_
|
||||
#define MYX_BASE_CONFIG_HPP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <myx/base/config_flags.hpp>
|
||||
|
||||
#ifdef MYXLIB_HEADER_ONLY
|
||||
#include "config-inl.hpp"
|
||||
#endif
|
||||
#include "config_flags.hpp"
|
||||
|
||||
#endif // MYX_BASE_CONFIG_HPP_
|
||||
|
@ -13,17 +13,17 @@ namespace base {
|
||||
template< typename Enum >
|
||||
struct EnableBitMaskOperators
|
||||
{
|
||||
static const bool k_Enable = false;
|
||||
static const bool enable = false;
|
||||
};
|
||||
|
||||
template< typename Enum >
|
||||
typename std::enable_if< EnableBitMaskOperators< Enum >::k_Enable, Enum >::type
|
||||
typename std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type
|
||||
operator |( Enum lhs, Enum rhs )
|
||||
{
|
||||
using Underlying = typename std::underlying_type< Enum >::type;
|
||||
using underlying = typename std::underlying_type< Enum >::type;
|
||||
return( static_cast< Enum >(
|
||||
static_cast< Underlying >( lhs ) |
|
||||
static_cast< Underlying >( rhs )
|
||||
static_cast< underlying >( lhs ) |
|
||||
static_cast< underlying >( rhs )
|
||||
) );
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ operator |( Enum lhs, Enum rhs )
|
||||
template<> \
|
||||
struct myx::base::EnableBitMaskOperators< x > \
|
||||
{ \
|
||||
static const bool k_Enable = true; \
|
||||
static const bool enable = true; \
|
||||
};
|
||||
|
||||
#endif // ifndef MYX_BASE_ENUM_BITWISE_OPERATIONS_HPP_
|
||||
|
@ -3,40 +3,39 @@ set(TRGT filesystem)
|
||||
|
||||
# cmake-format: off
|
||||
# Список файлов исходных текстов
|
||||
set(TRGT_cpp
|
||||
set(TRGT_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/current_executable.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.cpp)
|
||||
|
||||
# Список заголовочных файлов
|
||||
set(TRGT_hpp
|
||||
set(TRGT_headers
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/current_executable.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/paths.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.hpp)
|
||||
|
||||
set(TRGT_headers ${TRGT_hpp})
|
||||
# cmake-format: on
|
||||
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources})
|
||||
common_target_properties(${TRGT})
|
||||
|
||||
# Создание цели для проверки утилитой clang-tidy
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clang-analyze
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clazy
|
||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clazy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой pvs-studio
|
||||
add_pvs_check(${TRGT})
|
||||
|
||||
# Создание цели для автоматического форматирования кода
|
||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
|
||||
|
||||
cotire(${TRGT})
|
||||
|
||||
|
@ -8,9 +8,9 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QString>
|
||||
|
||||
|
||||
namespace myx {
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QString>
|
||||
|
||||
namespace myx {
|
||||
|
||||
@ -88,8 +88,8 @@ class Paths
|
||||
protected:
|
||||
Paths();
|
||||
~Paths() = default;
|
||||
Paths( const Paths& ) = delete; // NOLINT
|
||||
Paths& operator=( const Paths& ) = delete; // NOLINT
|
||||
Paths( const Paths& ) = delete;
|
||||
Paths& operator=( const Paths& ) = delete;
|
||||
|
||||
public:
|
||||
/**
|
||||
|
@ -8,12 +8,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
#include <myx/filesystem/paths.hpp>
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QString>
|
||||
|
||||
#include <atomic>
|
||||
#include <future>
|
||||
@ -29,8 +29,8 @@ class PathsMT : public Paths
|
||||
{
|
||||
PathsMT();
|
||||
~PathsMT() = default;
|
||||
PathsMT( const PathsMT& ) = delete; // NOLINT
|
||||
PathsMT& operator=( const PathsMT& ) = delete; // NOLINT
|
||||
PathsMT( const PathsMT& ) = delete;
|
||||
PathsMT& operator=( const PathsMT& ) = delete;
|
||||
|
||||
static std::atomic< PathsMT* > mInstance;
|
||||
static std::mutex mMutex;
|
||||
|
@ -11,7 +11,7 @@ set(TRGT_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp)
|
||||
|
||||
# Список заголовочных файлов
|
||||
set(TRGT_hpp
|
||||
set(TRGT_headers
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/all.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative_and_abs.hpp
|
||||
@ -22,21 +22,19 @@ set(TRGT_hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/functions.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/radar.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/units.hpp)
|
||||
|
||||
set(TRGT_headers ${TRGT_hpp})
|
||||
# cmake-format: on
|
||||
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers})
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources})
|
||||
common_target_properties(${TRGT})
|
||||
|
||||
# Создание цели для проверки утилитой clang-tidy
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clang-analyze
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clazy
|
||||
add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
add_clazy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой pvs-studio
|
||||
add_pvs_check(${TRGT})
|
||||
@ -44,7 +42,9 @@ add_pvs_check(${TRGT})
|
||||
# Создание цели для автоматического форматирования кода
|
||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
|
||||
|
||||
cotire(${TRGT})
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#include <myx/math/almost_equal_relative.hpp>
|
||||
#include <myx/math/almost_equal_relative_and_abs.hpp>
|
||||
#include <myx/math/almost_equal_ulps.hpp>
|
||||
#include <myx/math/almost_equal_ulps_and_abs.hpp>
|
||||
#include <myx/math/constants.hpp>
|
||||
#include <myx/math/functions.hpp>
|
||||
#include <myx/math/radar.hpp>
|
||||
#include <myx/math/units.hpp>
|
||||
#include <myx/math/radar.hpp>
|
||||
#include <myx/math/almost_equal_relative_and_abs.hpp>
|
||||
#include <myx/math/almost_equal_relative.hpp>
|
||||
#include <myx/math/almost_equal_ulps_and_abs.hpp>
|
||||
#include <myx/math/almost_equal_ulps.hpp>
|
||||
|
@ -14,15 +14,15 @@ namespace math {
|
||||
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
||||
* при которой аргументы считаются равными.
|
||||
*/
|
||||
bool almost_equal_relative( float a, float b,
|
||||
float maxRelDiff = FLT_EPSILON );
|
||||
bool almost_equal_relative( const float a, const float b,
|
||||
const float maxRelDiff = FLT_EPSILON );
|
||||
/**
|
||||
* @brief Проверка на равенство двух аргументов типа double.
|
||||
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
||||
* при которой аргументы считаются равными.
|
||||
*/
|
||||
bool almost_equal_relative( double a, double b,
|
||||
double maxRelDiff = DBL_EPSILON );
|
||||
bool almost_equal_relative( const double a, const double b,
|
||||
const double maxRelDiff = DBL_EPSILON );
|
||||
|
||||
} // namespace math
|
||||
|
||||
|
@ -13,16 +13,16 @@ namespace math {
|
||||
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
||||
* при которой аргументы считаются равными.
|
||||
*/
|
||||
bool almost_equal_relative_and_abs( float a, float b,
|
||||
float maxAbsDiff, float maxRelDiff = FLT_EPSILON );
|
||||
bool almost_equal_relative_and_abs( const float a, const float b,
|
||||
const float maxAbsDiff, const float maxRelDiff = FLT_EPSILON );
|
||||
/**
|
||||
* @brief Проверка на равенство двух аргументов типа double.
|
||||
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
|
||||
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
||||
* при которой аргументы считаются равными.
|
||||
*/
|
||||
bool almost_equal_relative_and_abs( double a, double b,
|
||||
double maxAbsDiff, double maxRelDiff = DBL_EPSILON );
|
||||
bool almost_equal_relative_and_abs( const double a, const double b,
|
||||
const double maxAbsDiff, const double maxRelDiff = DBL_EPSILON );
|
||||
|
||||
} // namespace math
|
||||
|
||||
|
@ -10,8 +10,8 @@ namespace math {
|
||||
bool almost_equal_ulps( const float a, const float b,
|
||||
const int maxUlpsDiff )
|
||||
{
|
||||
FloatCmp uA( a );
|
||||
FloatCmp uB( b );
|
||||
float_cmp_t uA( a );
|
||||
float_cmp_t uB( b );
|
||||
|
||||
// Если знаки разные, то числа не равны.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)
|
||||
@ -46,8 +46,8 @@ bool almost_equal_ulps( const float a, const float b,
|
||||
bool almost_equal_ulps( const double a, const double b,
|
||||
const int maxUlpsDiff )
|
||||
{
|
||||
DoubleCmp uA( a );
|
||||
DoubleCmp uB( b );
|
||||
double_cmp_t uA( a );
|
||||
double_cmp_t uB( b );
|
||||
|
||||
// Если знаки разные, то числа не равны.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)
|
||||
|
@ -14,15 +14,15 @@ namespace math {
|
||||
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
|
||||
* при которой они считаются равными.
|
||||
*/
|
||||
bool almost_equal_ulps( float a, float b,
|
||||
int maxUlpsDiff );
|
||||
bool almost_equal_ulps( const float a, const float b,
|
||||
const int maxUlpsDiff );
|
||||
/**
|
||||
* @brief Проверка на равенство двух аргументов типа double.
|
||||
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
|
||||
* при которой они считаются равными.
|
||||
*/
|
||||
bool almost_equal_ulps( double a, double b,
|
||||
int maxUlpsDiff );
|
||||
bool almost_equal_ulps( const double a, const double b,
|
||||
const int maxUlpsDiff );
|
||||
|
||||
} // namespace math
|
||||
|
||||
|
@ -18,8 +18,8 @@ bool almost_equal_ulps_and_abs( const float a, const float b,
|
||||
return( true );
|
||||
}
|
||||
|
||||
FloatCmp uA( a );
|
||||
FloatCmp uB( b );
|
||||
float_cmp_t uA( a );
|
||||
float_cmp_t uB( b );
|
||||
|
||||
// Different signs means they do not match.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)
|
||||
@ -51,8 +51,8 @@ bool almost_equal_ulps_and_abs( const double a, const double b,
|
||||
return( true );
|
||||
}
|
||||
|
||||
DoubleCmp uA( a );
|
||||
DoubleCmp uB( b );
|
||||
double_cmp_t uA( a );
|
||||
double_cmp_t uB( b );
|
||||
|
||||
// Different signs means they do not match.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)
|
||||
|
@ -11,16 +11,16 @@ namespace math {
|
||||
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
|
||||
* при которой они считаются равными.
|
||||
*/
|
||||
bool almost_equal_ulps_and_abs( float a, float b,
|
||||
float maxAbsDiff, int maxUlpsDiff );
|
||||
bool almost_equal_ulps_and_abs( const float a, const float b,
|
||||
const float maxAbsDiff, const int maxUlpsDiff );
|
||||
/**
|
||||
* @brief Проверка на равенство двух аргументов типа double.
|
||||
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
|
||||
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
|
||||
* при которой они считаются равными.
|
||||
*/
|
||||
bool almost_equal_ulps_and_abs( double a, double b,
|
||||
double maxAbsDiff, int maxUlpsDiff );
|
||||
bool almost_equal_ulps_and_abs( const double a, const double b,
|
||||
const double maxAbsDiff, const int maxUlpsDiff );
|
||||
|
||||
} // namespace math
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef MYX_MATH_CONSTANTS_HPP_
|
||||
#define MYX_MATH_CONSTANTS_HPP_
|
||||
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cmath>
|
||||
|
||||
namespace myx {
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
/**
|
||||
* @brief Объединение для получения знака аргумента типа float.
|
||||
*/
|
||||
union FloatCmp
|
||||
union float_cmp_t
|
||||
{
|
||||
int32_t i;
|
||||
float f;
|
||||
@ -14,7 +14,7 @@ union FloatCmp
|
||||
/**
|
||||
* @brief Инициализация.
|
||||
*/
|
||||
explicit FloatCmp( float num = 0.0F ) : f( num )
|
||||
float_cmp_t( float num = 0.0f ) : f( num )
|
||||
{
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ union FloatCmp
|
||||
/**
|
||||
* @brief Объединение для получения знака аргумента типа double.
|
||||
*/
|
||||
union DoubleCmp
|
||||
union double_cmp_t
|
||||
{
|
||||
int64_t i;
|
||||
double d;
|
||||
@ -38,7 +38,7 @@ union DoubleCmp
|
||||
/**
|
||||
* @brief Инициализация.
|
||||
*/
|
||||
explicit DoubleCmp( double num = 0.0L ) : d( num )
|
||||
double_cmp_t( double num = 0.0l ) : d( num )
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
#ifndef MYX_MATH_FUNCTIONS_HPP_
|
||||
#define MYX_MATH_FUNCTIONS_HPP_
|
||||
|
||||
#include <boost/math/special_functions/pow.hpp>
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cmath>
|
||||
#include <boost/math/special_functions/pow.hpp>
|
||||
|
||||
namespace myx {
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef MYX_MATH_RADAR_HPP_
|
||||
#define MYX_MATH_RADAR_HPP_
|
||||
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cmath>
|
||||
|
||||
namespace myx {
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef MYX_MATH_UNITS_HPP_
|
||||
#define MYX_MATH_UNITS_HPP_
|
||||
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cmath>
|
||||
|
||||
namespace myx {
|
||||
|
||||
@ -14,7 +14,7 @@ namespace math {
|
||||
* \return Значение в градусах
|
||||
*/
|
||||
template < typename T >
|
||||
T radians_to_degrees( const T& radians, typename std::enable_if< std::is_floating_point< T >::value >::type* /*unused*/ = 0 )
|
||||
T radians_to_degrees( const T& radians, typename std::enable_if< std::is_floating_point< T >::value >::type* = 0 )
|
||||
{
|
||||
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
||||
return( radians * M_1_PI * 180.0 );
|
||||
@ -27,7 +27,7 @@ T radians_to_degrees( const T& radians, typename std::enable_if< std::is_floatin
|
||||
* \return Значение в радианах
|
||||
*/
|
||||
template < typename T >
|
||||
T degrees_to_radians( const T& degrees, typename std::enable_if< std::is_floating_point< T >::value >::type* /*unused*/ = 0 )
|
||||
T degrees_to_radians( const T& degrees, typename std::enable_if< std::is_floating_point< T >::value >::type* = 0 )
|
||||
{
|
||||
static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
|
||||
return( degrees * M_PI / 180.0 );
|
||||
|
@ -3,34 +3,32 @@ set(TRGT qt)
|
||||
|
||||
# cmake-format: off
|
||||
# Список файлов исходных текстов
|
||||
set(TRGT_cpp
|
||||
set(TRGT_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp)
|
||||
|
||||
# Список заголовочных файлов (используется для установки)
|
||||
set(TRGT_hpp
|
||||
set(TRGT_headers
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/backports.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp)
|
||||
|
||||
set(TRGT_headers ${TRGT_hpp})
|
||||
# cmake-format: on
|
||||
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources})
|
||||
common_target_properties(${TRGT})
|
||||
|
||||
# Создание цели для проверки утилитой clang-tidy
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clang-analyze
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clazy
|
||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clazy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой pvs-studio
|
||||
add_pvs_check(${TRGT})
|
||||
|
||||
# Создание цели для автоматического форматирования кода
|
||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
|
@ -36,6 +36,7 @@ void append_translators( QTranslatorsList& translators, const QString& appName )
|
||||
translator->deleteLater();
|
||||
}
|
||||
|
||||
|
||||
translator = new QTranslator( qApp );
|
||||
if ( translator->load( "qtbase_" + QLocale::system().name(),
|
||||
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
|
||||
|
@ -9,9 +9,9 @@ namespace myx {
|
||||
|
||||
namespace qt {
|
||||
|
||||
using QTranslatorsList = QList< QTranslator* >;
|
||||
typedef QList< QTranslator* > QTranslatorsList;
|
||||
|
||||
void append_translators( QTranslatorsList& translators, const QString& appName ); // NOLINT
|
||||
void append_translators( QTranslatorsList& translators, const QString& appName );
|
||||
|
||||
} // namespace qt
|
||||
|
||||
|
@ -3,7 +3,7 @@ set(TRGT redis)
|
||||
|
||||
# cmake-format: off
|
||||
# Список файлов исходных текстов
|
||||
set(TRGT_cpp
|
||||
set(TRGT_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/client.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/config.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lexer.cpp
|
||||
@ -11,38 +11,37 @@ set(TRGT_cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/request.cpp)
|
||||
|
||||
# Список заголовочных файлов (используется для установки)
|
||||
set(TRGT_moc_hpp
|
||||
set(TRGT_headers
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/client.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/config.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lexer.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/parser.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/reply.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/request.hpp)
|
||||
|
||||
set(TRGT_headers ${TRGT_hpp})
|
||||
# cmake-format: on
|
||||
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources})
|
||||
common_target_properties(${TRGT})
|
||||
|
||||
# Создание цели для проверки утилитой clang-tidy
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_tidy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clang-analyze
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clang_analyze_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой clazy
|
||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_clazy_check(${TRGT} ${TRGT_sources})
|
||||
|
||||
# Создание цели для проверки утилитой pvs-studio
|
||||
add_pvs_check(${TRGT})
|
||||
|
||||
# Создание цели для автоматического форматирования кода
|
||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Network_INCLUDE_DIRS})
|
||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
|
||||
|
||||
cotire(${TRGT})
|
||||
|
||||
|
@ -9,6 +9,6 @@
|
||||
// #define MYX_REDIS_EXPORT Q_DECL_IMPORT
|
||||
// #endif
|
||||
|
||||
#include <myx/base/config_flags.hpp>
|
||||
#include "config_flags.hpp"
|
||||
|
||||
#endif // MYX_REDIS_CONFIG_HPP_
|
||||
|
Loading…
Reference in New Issue
Block a user