75 lines
2.8 KiB
MQL5
75 lines
2.8 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| Simple.mqh |
| |||
//| Copyright 2026, Niquel Mendoza. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
#property copyright "Copyright 2026, Niquel Mendoza."
| |||
#property link "https://www.mql5.com"
| |||
#property strict
| |||
| |||
#ifndef MQLARTICLES_UTILS_SORT_GENERIC_SIMPLE_MQH
| |||
#define MQLARTICLES_UTILS_SORT_GENERIC_SIMPLE_MQH
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
#include "..\\Base\\Sort.mqh"
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
// Por defecto simple..
| |||
#define TsnSort(arr, lo, hi, type) CTsnSort::Sort<type, CGenericUtilsSort_##type>(arr, (lo), (hi))
| |||
// Version custom espeicia el "TBase"
| |||
#define TsnSortP(arr, lo, hi, type, BASE) CTsnSort::Sort<type, CGenericUtilsSort_##BASE>(arr, (lo), (hi))
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
class CGenericUtilsSort_Simple
| |||
{
| |||
public:
| |||
CGenericUtilsSort_Simple(void) {}
| |||
~CGenericUtilsSort_Simple(void) {}
| |||
| |||
//---
| |||
template<typename TValue>
| |||
static __forceinline bool Less(const TValue a, const TValue b) { return a < b; }
| |||
template<typename TValue>
| |||
static void Swap(TValue& a, TValue& b)
| |||
{
| |||
const TValue temp = a;
| |||
a = b;
| |||
b = temp;
| |||
}
| |||
};
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
#define TSNSORT_MAKE_CLASS_SIMPLE(TYPE) \
| |||
class CGenericUtilsSort_##TYPE : public CGenericUtilsSort_Simple \
| |||
{ \
| |||
public: \
| |||
CGenericUtilsSort_##TYPE(void) {} \
| |||
~CGenericUtilsSort_##TYPE(void) {} \
| |||
};
| |||
| |||
//---
| |||
TSNSORT_MAKE_CLASS_SIMPLE(int)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(long)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(char)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(short)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(uint)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(ulong)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(uchar)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(ushort)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(float)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(double)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(datetime)
| |||
TSNSORT_MAKE_CLASS_SIMPLE(color)
| |||
| |||
| |||
| |||
//+------------------------------------------------------------------+
| |||
#endif // MQLARTICLES_UTILS_SORT_GENERIC_SIMPLE_MQH
|