#pragma once //----------------------------------------------------------------------------- // определения проекта () // надо прочитать: // https://habr.com/ru/company/inoventica/blog/275685/ // // используем std/stl // 25.01.2020 //----------------------------------------------------------------------------- // если тебе надо что-либо установить для кокой-нибудь специфичной среды - сделай это в отдельном h //#define _CRT_SECURE_NO_WARNINGS // виндовая хрень, чтобы sprintf не ругался #include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #include #include #include #include //!!! без этого не работает JArray2D::log //#include // для функции time() #include #include #include //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- #define MIN(a,b) ( (a) < (b) ? (a) : (b) ) #define MAX(a,b) ( (a) > (b) ? (a) : (b) ) #define ABS(a) ( ((a) < 0 ) ? -(a) : (a) ) #define SIGN(a) ( ((a) < 0 ) ? (-1) : (1) ) #define MOD(a) ( (a) >=0 ? (a) : (-(a)) ) #define SQR(a) ( a * a ) #define ULENGTH(a,b) ( (a) >= (b) ? (a - b) : (b - a) ) #define SHIFT_F(a,b) ( reinterpret_cast( &static_cast(nullptr)->b ) ) #define SIZEOF_F(a,b) (sizeof( static_cast(nullptr)->b )) // определение размера поля структуры без ее создания // по совету Ч.Ю. // компилируется как константа #define SIZEOF_M(m) (sizeof(m)/sizeof(m[0])) // определение количества элементов массива, вне зависимости от его типа // по совету Ч.Ю. #include "PrettyFunctionDefines.h" //----------------------------------------------------------------------------- // перед тем, как творить свои типы данных - ПОДУМАЙ