Compare commits

...

6 Commits

30 changed files with 131 additions and 122 deletions

View File

@ -13,6 +13,7 @@ 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,
@ -88,9 +89,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: lower_case value: CamelCase
- key: readability-identifier-naming.ConstexprVariablePrefix - key: readability-identifier-naming.ConstexprVariablePrefix
value: '' value: 'k_'
- key: readability-identifier-naming.ConstexprVariableSuffix - key: readability-identifier-naming.ConstexprVariableSuffix
value: '' value: ''
- key: readability-identifier-naming.EnumCase - key: readability-identifier-naming.EnumCase
@ -102,7 +103,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
@ -114,7 +115,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: 'k_' value: ''
- 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,10 +15,11 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
include(CMLibCommon) include(CMLibCommon)
option(BUILD_EXAMPLES "Build examples" OFF) option(MYXLIB_HEADER_ONLY "Build header only version of library" ON)
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
# Поиск библиотек с помощью pkgconfig # Поиск библиотек с помощью pkgconfig
find_package(PkgConfig) find_package(PkgConfig REQUIRED)
# Потоки # Потоки
set(THREADS_PREFER_PTHREAD_FLAG ON) set(THREADS_PREFER_PTHREAD_FLAG ON)
@ -41,7 +42,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/config_flags.hpp) ${CMAKE_BINARY_DIR}/include/myx/base/config_flags.hpp)
# Подключение внешних проектов # Подключение внешних проектов
include(ExternalProject) include(ExternalProject)
@ -63,4 +64,3 @@ endif()
# Документация # Документация
add_subdirectory(cmake/doc) add_subdirectory(cmake/doc)

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

View File

@ -10,19 +10,5 @@ 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(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CMLIB_GENERATED_HEADERS_PATH ${CMAKE_BINARY_DIR}/include/myx/base)
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,35 +3,38 @@ set(TRGT base)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_sources set(TRGT_cpp
${CMAKE_CURRENT_SOURCE_DIR}/config.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/config.cpp)
# Список заголовочных файлов # Список заголовочных файлов
set(TRGT_headers set(TRGT_hpp
${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_sources} ${TRGT_headers}) add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
common_target_properties(${TRGT}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_sources}) add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources}) add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources}) add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
# Создание цели для автоматического форматирования кода # Создание цели для автоматического форматирования кода
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
cotire(${TRGT}) cotire(${TRGT})

View File

@ -0,0 +1,10 @@
#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,6 +1,12 @@
#ifndef MYX_BASE_CONFIG_HPP_ #ifndef MYX_BASE_CONFIG_HPP_
#define MYX_BASE_CONFIG_HPP_ #define MYX_BASE_CONFIG_HPP_
#include "config_flags.hpp" #pragma once
#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 enable = false; static const bool k_Enable = false;
}; };
template< typename Enum > template< typename Enum >
typename std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type typename std::enable_if< EnableBitMaskOperators< Enum >::k_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 enable = true; \ static const bool k_Enable = true; \
}; };
#endif // ifndef MYX_BASE_ENUM_BITWISE_OPERATIONS_HPP_ #endif // ifndef MYX_BASE_ENUM_BITWISE_OPERATIONS_HPP_

View File

@ -3,39 +3,40 @@ set(TRGT filesystem)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_sources set(TRGT_cpp
${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_headers set(TRGT_hpp
${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_sources}) add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
common_target_properties(${TRGT}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_sources}) add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources}) add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources}) add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
# Создание цели для автоматического форматирования кода # Создание цели для автоматического форматирования кода
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_format_sources(${TRGT} ${TRGT_cpp} ${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; Paths( const Paths& ) = delete; // NOLINT
Paths& operator=( const Paths& ) = delete; Paths& operator=( const Paths& ) = delete; // NOLINT
public: public:
/** /**

View File

@ -8,12 +8,12 @@
#pragma once #pragma once
#include <myx/filesystem/paths.hpp>
#include <myx/filesystem/current_executable.hpp> #include <myx/filesystem/current_executable.hpp>
#include <myx/filesystem/paths.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; PathsMT( const PathsMT& ) = delete; // NOLINT
PathsMT& operator=( const PathsMT& ) = delete; PathsMT& operator=( const PathsMT& ) = delete; // NOLINT
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_headers set(TRGT_hpp
${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,19 +22,21 @@ set(TRGT_headers
${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}) 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_sources}) add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources}) add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources}) add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
@ -42,9 +44,7 @@ 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/units.hpp>
#include <myx/math/radar.hpp> #include <myx/math/radar.hpp>
#include <myx/math/almost_equal_relative_and_abs.hpp> #include <myx/math/units.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( const float a, const float b, bool almost_equal_relative( float a, float b,
const float maxRelDiff = FLT_EPSILON ); float maxRelDiff = FLT_EPSILON );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative( const double a, const double b, bool almost_equal_relative( double a, double b,
const double maxRelDiff = DBL_EPSILON ); double maxRelDiff = DBL_EPSILON );
} // namespace math } // namespace math

View File

@ -13,16 +13,16 @@ namespace math {
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative_and_abs( const float a, const float b, bool almost_equal_relative_and_abs( float a, float b,
const float maxAbsDiff, const float maxRelDiff = FLT_EPSILON ); float maxAbsDiff, float maxRelDiff = FLT_EPSILON );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
* при которой аргументы считаются равными. * при которой аргументы считаются равными.
*/ */
bool almost_equal_relative_and_abs( const double a, const double b, bool almost_equal_relative_and_abs( double a, double b,
const double maxAbsDiff, const double maxRelDiff = DBL_EPSILON ); double maxAbsDiff, 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 )
{ {
float_cmp_t uA( a ); FloatCmp uA( a );
float_cmp_t uB( b ); FloatCmp 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 )
{ {
double_cmp_t uA( a ); DoubleCmp uA( a );
double_cmp_t uB( b ); DoubleCmp 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( const float a, const float b, bool almost_equal_ulps( float a, float b,
const int maxUlpsDiff ); int maxUlpsDiff );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps( const double a, const double b, bool almost_equal_ulps( double a, double b,
const int maxUlpsDiff ); 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 );
} }
float_cmp_t uA( a ); FloatCmp uA( a );
float_cmp_t uB( b ); FloatCmp 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 );
} }
double_cmp_t uA( a ); DoubleCmp uA( a );
double_cmp_t uB( b ); DoubleCmp 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( const float a, const float b, bool almost_equal_ulps_and_abs( float a, float b,
const float maxAbsDiff, const int maxUlpsDiff ); float maxAbsDiff, int maxUlpsDiff );
/** /**
* @brief Проверка на равенство двух аргументов типа double. * @brief Проверка на равенство двух аргументов типа double.
* Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу.
* Параметр maxUlpsDiff определяет максимальную разницу между аргументами, * Параметр maxUlpsDiff определяет максимальную разницу между аргументами,
* при которой они считаются равными. * при которой они считаются равными.
*/ */
bool almost_equal_ulps_and_abs( const double a, const double b, bool almost_equal_ulps_and_abs( double a, double b,
const double maxAbsDiff, const int maxUlpsDiff ); double maxAbsDiff, 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 <type_traits>
#include <cmath> #include <cmath>
#include <type_traits>
namespace myx { namespace myx {

View File

@ -6,7 +6,7 @@
/** /**
* @brief Объединение для получения знака аргумента типа float. * @brief Объединение для получения знака аргумента типа float.
*/ */
union float_cmp_t union FloatCmp
{ {
int32_t i; int32_t i;
float f; float f;
@ -14,7 +14,7 @@ union float_cmp_t
/** /**
* @brief Инициализация. * @brief Инициализация.
*/ */
float_cmp_t( float num = 0.0f ) : f( num ) explicit FloatCmp( float num = 0.0F ) : f( num )
{ {
} }
@ -30,7 +30,7 @@ union float_cmp_t
/** /**
* @brief Объединение для получения знака аргумента типа double. * @brief Объединение для получения знака аргумента типа double.
*/ */
union double_cmp_t union DoubleCmp
{ {
int64_t i; int64_t i;
double d; double d;
@ -38,7 +38,7 @@ union double_cmp_t
/** /**
* @brief Инициализация. * @brief Инициализация.
*/ */
double_cmp_t( double num = 0.0l ) : d( num ) explicit DoubleCmp( 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 <type_traits>
#include <cmath>
#include <boost/math/special_functions/pow.hpp> #include <boost/math/special_functions/pow.hpp>
#include <cmath>
#include <type_traits>
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 <type_traits>
#include <cmath> #include <cmath>
#include <type_traits>
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 <type_traits>
#include <cmath> #include <cmath>
#include <type_traits>
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* = 0 ) T radians_to_degrees( const T& radians, typename std::enable_if< std::is_floating_point< T >::value >::type* /*unused*/ = 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* = 0 ) T degrees_to_radians( const T& degrees, typename std::enable_if< std::is_floating_point< T >::value >::type* /*unused*/ = 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,32 +3,34 @@ set(TRGT qt)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_sources set(TRGT_cpp
${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp)
# Список заголовочных файлов (используется для установки) # Список заголовочных файлов (используется для установки)
set(TRGT_headers set(TRGT_hpp
${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_sources}) add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
common_target_properties(${TRGT}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_sources}) add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources}) add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources}) add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
# Создание цели для автоматического форматирования кода # Создание цели для автоматического форматирования кода
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_format_sources(${TRGT} ${TRGT_cpp} ${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,7 +36,6 @@ 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 {
typedef QList< QTranslator* > QTranslatorsList; using QTranslatorsList = QList< QTranslator* >;
void append_translators( QTranslatorsList& translators, const QString& appName ); void append_translators( QTranslatorsList& translators, const QString& appName ); // NOLINT
} // namespace qt } // namespace qt

View File

@ -3,7 +3,7 @@ set(TRGT redis)
# cmake-format: off # cmake-format: off
# Список файлов исходных текстов # Список файлов исходных текстов
set(TRGT_sources set(TRGT_cpp
${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,37 +11,38 @@ set(TRGT_sources
${CMAKE_CURRENT_SOURCE_DIR}/request.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/request.cpp)
# Список заголовочных файлов (используется для установки) # Список заголовочных файлов (используется для установки)
set(TRGT_headers set(TRGT_moc_hpp
${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_sources}) add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
common_target_properties(${TRGT}) common_target_properties(${TRGT})
# Создание цели для проверки утилитой clang-tidy # Создание цели для проверки утилитой clang-tidy
add_clang_tidy_check(${TRGT} ${TRGT_sources}) add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clang-analyze # Создание цели для проверки утилитой clang-analyze
add_clang_analyze_check(${TRGT} ${TRGT_sources}) add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой clazy # Создание цели для проверки утилитой clazy
add_clazy_check(${TRGT} ${TRGT_sources}) add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
# Создание цели для проверки утилитой pvs-studio # Создание цели для проверки утилитой pvs-studio
add_pvs_check(${TRGT}) add_pvs_check(${TRGT})
# Создание цели для автоматического форматирования кода # Создание цели для автоматического форматирования кода
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) add_format_sources(${TRGT} ${TRGT_cpp} ${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 "config_flags.hpp" #include <myx/base/config_flags.hpp>
#endif // MYX_REDIS_CONFIG_HPP_ #endif // MYX_REDIS_CONFIG_HPP_