Compare commits

..

No commits in common. "44817a8a946fda4ae54f2830ea63bb62db1b0537" and "18aa743a63cbf06bd835189023d15c37a7d1b0be" have entirely different histories.

30 changed files with 122 additions and 131 deletions

View File

@ -13,7 +13,6 @@ portability-*,
-cppcoreguidelines-owning-memory, -cppcoreguidelines-owning-memory,
-cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-llvm-header-guard,
-readability-magic-numbers, -readability-magic-numbers,
-readability-else-after-return, -readability-else-after-return,
-modernize-use-trailing-return-type, -modernize-use-trailing-return-type,
@ -89,9 +88,9 @@ CheckOptions:
- key: readability-identifier-naming.ConstexprMethodSuffix - key: readability-identifier-naming.ConstexprMethodSuffix
value: '' value: ''
- key: readability-identifier-naming.ConstexprVariableCase - key: readability-identifier-naming.ConstexprVariableCase
value: CamelCase value: lower_case
- key: readability-identifier-naming.ConstexprVariablePrefix - key: readability-identifier-naming.ConstexprVariablePrefix
value: 'k_' value: ''
- key: readability-identifier-naming.ConstexprVariableSuffix - key: readability-identifier-naming.ConstexprVariableSuffix
value: '' value: ''
- key: readability-identifier-naming.EnumCase - key: readability-identifier-naming.EnumCase
@ -103,7 +102,7 @@ CheckOptions:
- key: readability-identifier-naming.EnumConstantCase - key: readability-identifier-naming.EnumConstantCase
value: CamelCase value: CamelCase
- key: readability-identifier-naming.EnumConstantPrefix - key: readability-identifier-naming.EnumConstantPrefix
value: 'k' value: 'k_'
- key: readability-identifier-naming.EnumConstantSuffix - key: readability-identifier-naming.EnumConstantSuffix
value: '' value: ''
- key: readability-identifier-naming.FunctionCase - key: readability-identifier-naming.FunctionCase
@ -115,7 +114,7 @@ CheckOptions:
- key: readability-identifier-naming.GlobalConstantCase - key: readability-identifier-naming.GlobalConstantCase
value: CamelCase value: CamelCase
- key: readability-identifier-naming.GlobalConstantPrefix - key: readability-identifier-naming.GlobalConstantPrefix
value: '' value: 'k_'
- key: readability-identifier-naming.GlobalConstantSuffix - key: readability-identifier-naming.GlobalConstantSuffix
value: '' value: ''
- key: readability-identifier-naming.GlobalConstantPointerCase - key: readability-identifier-naming.GlobalConstantPointerCase

View File

@ -15,11 +15,10 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
include(CMLibCommon) include(CMLibCommon)
option(MYXLIB_HEADER_ONLY "Build header only version of library" ON) option(BUILD_EXAMPLES "Build examples" OFF)
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
# Поиск библиотек с помощью pkgconfig # Поиск библиотек с помощью pkgconfig
find_package(PkgConfig REQUIRED) find_package(PkgConfig)
# Потоки # Потоки
set(THREADS_PREFER_PTHREAD_FLAG ON) set(THREADS_PREFER_PTHREAD_FLAG ON)
@ -42,7 +41,7 @@ find_package(
cmlib_config_hpp_generate() cmlib_config_hpp_generate()
configure_file(${CMAKE_SOURCE_DIR}/src/myx/base/config_flags.hpp.in 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) include(ExternalProject)
@ -64,3 +63,4 @@ endif()
# Документация # Документация
add_subdirectory(cmake/doc) add_subdirectory(cmake/doc)

@ -1 +1 @@
Subproject commit e5fbb9023546a5e98c832e8596586c71edcc5b2f Subproject commit 2909f5a9d42ea4b0182329941a52b83e60c720d6

View File

@ -10,5 +10,19 @@ set(CPACK_COMPONENTS_ALL EXAMPLES)
set(CPACK_GENERATOR "TXZ;DEB") set(CPACK_GENERATOR "TXZ;DEB")
set(CPACK_PACKAGE_CONTACT "Andrei Astafev <dev@246060.ru>") set(CPACK_PACKAGE_CONTACT "Andrei Astafev <dev@246060.ru>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mixed functions") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mixed functions")
set(CPACK_DEBIAN_PACKAGE_SECTION "misc")
set(CMLIB_GENERATED_HEADERS_PATH ${CMAKE_BINARY_DIR}/include/myx/base) 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$)

View File

@ -3,38 +3,35 @@ set(TRGT base)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_cpp set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/config.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/config.cpp)
# Список заголовочных файлов # Список заголовочных файлов
set(TRGT_hpp set(TRGT_headers
${CMAKE_CURRENT_SOURCE_DIR}/config.hpp ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp
${CMAKE_CURRENT_SOURCE_DIR}/config-inl.hpp
${CMAKE_CURRENT_SOURCE_DIR}/limits.hpp ${CMAKE_CURRENT_SOURCE_DIR}/limits.hpp
${CMAKE_CURRENT_SOURCE_DIR}/enum_bitmask_operations.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/enum_bitmask_operations.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on # 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}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_tidy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_analyze_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clazy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) 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}) cotire(${TRGT})

View File

@ -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_

View File

@ -1,12 +1,6 @@
#ifndef MYX_BASE_CONFIG_HPP_ #ifndef MYX_BASE_CONFIG_HPP_
#define MYX_BASE_CONFIG_HPP_ #define MYX_BASE_CONFIG_HPP_
#pragma once #include "config_flags.hpp"
#include <myx/base/config_flags.hpp>
#ifdef MYXLIB_HEADER_ONLY
#include "config-inl.hpp"
#endif
#endif // MYX_BASE_CONFIG_HPP_ #endif // MYX_BASE_CONFIG_HPP_

View File

@ -13,17 +13,17 @@ namespace base {
template< typename Enum > template< typename Enum >
struct EnableBitMaskOperators struct EnableBitMaskOperators
{ {
static const bool k_Enable = false; static const bool enable = false;
}; };
template< typename Enum > 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 ) 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 >( return( static_cast< Enum >(
static_cast< Underlying >( lhs ) | static_cast< underlying >( lhs ) |
static_cast< Underlying >( rhs ) static_cast< underlying >( rhs )
) ); ) );
} }
@ -52,7 +52,7 @@ operator |( Enum lhs, Enum rhs )
template<> \ template<> \
struct myx::base::EnableBitMaskOperators< x > \ struct myx::base::EnableBitMaskOperators< x > \
{ \ { \
static const bool k_Enable = true; \ static const bool enable = true; \
}; };
#endif // ifndef MYX_BASE_ENUM_BITWISE_OPERATIONS_HPP_ #endif // ifndef MYX_BASE_ENUM_BITWISE_OPERATIONS_HPP_

View File

@ -3,40 +3,39 @@ set(TRGT filesystem)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_cpp set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/current_executable.cpp ${CMAKE_CURRENT_SOURCE_DIR}/current_executable.cpp
${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp ${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp
${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.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}/current_executable.hpp
${CMAKE_CURRENT_SOURCE_DIR}/paths.hpp ${CMAKE_CURRENT_SOURCE_DIR}/paths.hpp
${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on # 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}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_tidy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_analyze_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clazy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) 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 ${Qt5Core_INCLUDE_DIRS})
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
cotire(${TRGT}) cotire(${TRGT})

View File

@ -8,9 +8,9 @@
#pragma once #pragma once
#include <QString>
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
#include <QString>
namespace myx { namespace myx {

View File

@ -10,9 +10,9 @@
#include <myx/filesystem/current_executable.hpp> #include <myx/filesystem/current_executable.hpp>
#include <QString>
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
#include <QString>
namespace myx { namespace myx {
@ -88,8 +88,8 @@ class Paths
protected: protected:
Paths(); Paths();
~Paths() = default; ~Paths() = default;
Paths( const Paths& ) = delete; // NOLINT Paths( const Paths& ) = delete;
Paths& operator=( const Paths& ) = delete; // NOLINT Paths& operator=( const Paths& ) = delete;
public: public:
/** /**

View File

@ -8,12 +8,12 @@
#pragma once #pragma once
#include <myx/filesystem/current_executable.hpp>
#include <myx/filesystem/paths.hpp> #include <myx/filesystem/paths.hpp>
#include <myx/filesystem/current_executable.hpp>
#include <QString>
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
#include <QString>
#include <atomic> #include <atomic>
#include <future> #include <future>
@ -29,8 +29,8 @@ class PathsMT : public Paths
{ {
PathsMT(); PathsMT();
~PathsMT() = default; ~PathsMT() = default;
PathsMT( const PathsMT& ) = delete; // NOLINT PathsMT( const PathsMT& ) = delete;
PathsMT& operator=( const PathsMT& ) = delete; // NOLINT PathsMT& operator=( const PathsMT& ) = delete;
static std::atomic< PathsMT* > mInstance; static std::atomic< PathsMT* > mInstance;
static std::mutex mMutex; static std::mutex mMutex;

View File

@ -11,7 +11,7 @@ set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp)
# Список заголовочных файлов # Список заголовочных файлов
set(TRGT_hpp set(TRGT_headers
${CMAKE_CURRENT_SOURCE_DIR}/all.hpp ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp
${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative.hpp ${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative.hpp
${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative_and_abs.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}/functions.hpp
${CMAKE_CURRENT_SOURCE_DIR}/radar.hpp ${CMAKE_CURRENT_SOURCE_DIR}/radar.hpp
${CMAKE_CURRENT_SOURCE_DIR}/units.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/units.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on # 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}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_clang_tidy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_clang_analyze_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_clazy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
@ -44,7 +42,9 @@ add_pvs_check(${TRGT})
# Создание цели для автоматического форматирования кода # Создание цели для автоматического форматирования кода
add_format_sources(${TRGT} ${TRGT_sources} ${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} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
cotire(${TRGT}) cotire(${TRGT})

View File

@ -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/constants.hpp>
#include <myx/math/functions.hpp> #include <myx/math/functions.hpp>
#include <myx/math/radar.hpp>
#include <myx/math/units.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>

View File

@ -14,15 +14,15 @@ namespace math {
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative( float a, float b, bool almost_equal_relative( const float a, const float b,
float maxRelDiff = FLT_EPSILON ); const float maxRelDiff = FLT_EPSILON );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative( double a, double b, bool almost_equal_relative( const double a, const double b,
double maxRelDiff = DBL_EPSILON ); const double maxRelDiff = DBL_EPSILON );
} // namespace math } // namespace math

View File

@ -13,16 +13,16 @@ namespace math {
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative_and_abs( float a, float b, bool almost_equal_relative_and_abs( const float a, const float b,
float maxAbsDiff, float maxRelDiff = FLT_EPSILON ); const float maxAbsDiff, const float maxRelDiff = FLT_EPSILON );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative_and_abs( double a, double b, bool almost_equal_relative_and_abs( const double a, const double b,
double maxAbsDiff, double maxRelDiff = DBL_EPSILON ); const double maxAbsDiff, const double maxRelDiff = DBL_EPSILON );
} // namespace math } // namespace math

View File

@ -10,8 +10,8 @@ namespace math {
bool almost_equal_ulps( const float a, const float b, bool almost_equal_ulps( const float a, const float b,
const int maxUlpsDiff ) const int maxUlpsDiff )
{ {
FloatCmp uA( a ); float_cmp_t uA( a );
FloatCmp uB( b ); float_cmp_t uB( b );
// Если знаки разные, то числа не равны. // Если знаки разные, то числа не равны.
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access) // 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, bool almost_equal_ulps( const double a, const double b,
const int maxUlpsDiff ) const int maxUlpsDiff )
{ {
DoubleCmp uA( a ); double_cmp_t uA( a );
DoubleCmp uB( b ); double_cmp_t uB( b );
// Если знаки разные, то числа не равны. // Если знаки разные, то числа не равны.
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access) // NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)

View File

@ -14,15 +14,15 @@ namespace math {
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps( float a, float b, bool almost_equal_ulps( const float a, const float b,
int maxUlpsDiff ); const int maxUlpsDiff );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps( double a, double b, bool almost_equal_ulps( const double a, const double b,
int maxUlpsDiff ); const int maxUlpsDiff );
} // namespace math } // namespace math

View File

@ -18,8 +18,8 @@ bool almost_equal_ulps_and_abs( const float a, const float b,
return( true ); return( true );
} }
FloatCmp uA( a ); float_cmp_t uA( a );
FloatCmp uB( b ); float_cmp_t uB( b );
// Different signs means they do not match. // Different signs means they do not match.
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access) // NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)
@ -51,8 +51,8 @@ bool almost_equal_ulps_and_abs( const double a, const double b,
return( true ); return( true );
} }
DoubleCmp uA( a ); double_cmp_t uA( a );
DoubleCmp uB( b ); double_cmp_t uB( b );
// Different signs means they do not match. // Different signs means they do not match.
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access) // NOLINTNEXTLINE(cppcoreguidelines-pro-type-union-access)

View File

@ -11,16 +11,16 @@ namespace math {
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps_and_abs( float a, float b, bool almost_equal_ulps_and_abs( const float a, const float b,
float maxAbsDiff, int maxUlpsDiff ); const float maxAbsDiff, const int maxUlpsDiff );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps_and_abs( double a, double b, bool almost_equal_ulps_and_abs( const double a, const double b,
double maxAbsDiff, int maxUlpsDiff ); const double maxAbsDiff, const int maxUlpsDiff );
} // namespace math } // namespace math

View File

@ -1,8 +1,8 @@
#ifndef MYX_MATH_CONSTANTS_HPP_ #ifndef MYX_MATH_CONSTANTS_HPP_
#define MYX_MATH_CONSTANTS_HPP_ #define MYX_MATH_CONSTANTS_HPP_
#include <cmath>
#include <type_traits> #include <type_traits>
#include <cmath>
namespace myx { namespace myx {

View File

@ -6,7 +6,7 @@
/** /**
* @brief Объединение для получения знака аргумента типа float. * @brief Объединение для получения знака аргумента типа float.
*/ */
union FloatCmp union float_cmp_t
{ {
int32_t i; int32_t i;
float f; float f;
@ -14,7 +14,7 @@ union FloatCmp
/** /**
* @brief Инициализация. * @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. * @brief Объединение для получения знака аргумента типа double.
*/ */
union DoubleCmp union double_cmp_t
{ {
int64_t i; int64_t i;
double d; double d;
@ -38,7 +38,7 @@ union DoubleCmp
/** /**
* @brief Инициализация. * @brief Инициализация.
*/ */
explicit DoubleCmp( double num = 0.0L ) : d( num ) double_cmp_t( double num = 0.0l ) : d( num )
{ {
} }

View File

@ -1,9 +1,9 @@
#ifndef MYX_MATH_FUNCTIONS_HPP_ #ifndef MYX_MATH_FUNCTIONS_HPP_
#define MYX_MATH_FUNCTIONS_HPP_ #define MYX_MATH_FUNCTIONS_HPP_
#include <boost/math/special_functions/pow.hpp>
#include <cmath>
#include <type_traits> #include <type_traits>
#include <cmath>
#include <boost/math/special_functions/pow.hpp>
namespace myx { namespace myx {

View File

@ -1,8 +1,8 @@
#ifndef MYX_MATH_RADAR_HPP_ #ifndef MYX_MATH_RADAR_HPP_
#define MYX_MATH_RADAR_HPP_ #define MYX_MATH_RADAR_HPP_
#include <cmath>
#include <type_traits> #include <type_traits>
#include <cmath>
namespace myx { namespace myx {

View File

@ -1,8 +1,8 @@
#ifndef MYX_MATH_UNITS_HPP_ #ifndef MYX_MATH_UNITS_HPP_
#define MYX_MATH_UNITS_HPP_ #define MYX_MATH_UNITS_HPP_
#include <cmath>
#include <type_traits> #include <type_traits>
#include <cmath>
namespace myx { namespace myx {
@ -14,7 +14,7 @@ namespace math {
* \return Значение в градусах * \return Значение в градусах
*/ */
template < typename T > 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." ); static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
return( radians * M_1_PI * 180.0 ); 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 Значение в радианах * \return Значение в радианах
*/ */
template < typename T > 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." ); static_assert( std::is_arithmetic< T >::value, "Arithmetic type is required." );
return( degrees * M_PI / 180.0 ); return( degrees * M_PI / 180.0 );

View File

@ -3,34 +3,32 @@ set(TRGT qt)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_cpp set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp)
# Список заголовочных файлов (используется для установки) # Список заголовочных файлов (используется для установки)
set(TRGT_hpp set(TRGT_headers
${CMAKE_CURRENT_SOURCE_DIR}/backports.hpp ${CMAKE_CURRENT_SOURCE_DIR}/backports.hpp
${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on # 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}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_tidy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_analyze_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clazy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) 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 ${Qt5Core_INCLUDE_DIRS})
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)

View File

@ -36,6 +36,7 @@ void append_translators( QTranslatorsList& translators, const QString& appName )
translator->deleteLater(); translator->deleteLater();
} }
translator = new QTranslator( qApp ); translator = new QTranslator( qApp );
if ( translator->load( "qtbase_" + QLocale::system().name(), if ( translator->load( "qtbase_" + QLocale::system().name(),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) ) QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )

View File

@ -9,9 +9,9 @@ namespace myx {
namespace qt { 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 } // namespace qt

View File

@ -3,7 +3,7 @@ set(TRGT redis)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_cpp set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/client.cpp ${CMAKE_CURRENT_SOURCE_DIR}/client.cpp
${CMAKE_CURRENT_SOURCE_DIR}/config.cpp ${CMAKE_CURRENT_SOURCE_DIR}/config.cpp
${CMAKE_CURRENT_SOURCE_DIR}/lexer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/lexer.cpp
@ -11,38 +11,37 @@ set(TRGT_cpp
${CMAKE_CURRENT_SOURCE_DIR}/request.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/request.cpp)
# Список заголовочных файлов (используется для установки) # Список заголовочных файлов (используется для установки)
set(TRGT_moc_hpp set(TRGT_headers
${CMAKE_CURRENT_SOURCE_DIR}/client.hpp ${CMAKE_CURRENT_SOURCE_DIR}/client.hpp
${CMAKE_CURRENT_SOURCE_DIR}/config.hpp ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp
${CMAKE_CURRENT_SOURCE_DIR}/lexer.hpp ${CMAKE_CURRENT_SOURCE_DIR}/lexer.hpp
${CMAKE_CURRENT_SOURCE_DIR}/parser.hpp ${CMAKE_CURRENT_SOURCE_DIR}/parser.hpp
${CMAKE_CURRENT_SOURCE_DIR}/reply.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reply.hpp
${CMAKE_CURRENT_SOURCE_DIR}/request.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/request.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on # 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}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_tidy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clang_analyze_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) add_clazy_check(${TRGT} ${TRGT_sources})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) 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 ${Qt5Core_INCLUDE_DIRS})
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Network_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} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
target_include_directories(${TRGT} PRIVATE ${CMAKE_BINARY_DIR}/include)
cotire(${TRGT}) cotire(${TRGT})

View File

@ -9,6 +9,6 @@
// #define MYX_REDIS_EXPORT Q_DECL_IMPORT // #define MYX_REDIS_EXPORT Q_DECL_IMPORT
// #endif // #endif
#include <myx/base/config_flags.hpp> #include "config_flags.hpp"
#endif // MYX_REDIS_CONFIG_HPP_ #endif // MYX_REDIS_CONFIG_HPP_