Как написать одну функцию ArrayPrint для любого типа массива в MQL4?

 

Я написал следующий код для печати значений массива.

template <typename T>
void  ArrayPrint(
   const T &array[],             // printed array
   uint          digits=5,      // number of decimal places
   const string  separator=NULL,      // separator of the structure field values
   int         start=0,             // first printed element index
   int         count=WHOLE_ARRAY,   // number of printed elements
   int         flags=-1
)
  {
   if(count==WHOLE_ARRAY)
      count = ArraySize(array);
   string empty_string = "";
   for(int i=start; i<count; i++)
     {
      empty_string += StringFormat("%s  ",string(array[i]));
     }
   PrintFormat("%s",empty_string);
  }
template <typename T>
void  ArrayPrint(
   const T &array[][],             // printed array
   uint          digits=5,      // number of decimal places
   const string  separator=NULL,      // separator of the structure field values
   int         start=0,             // first printed element index
   int         count=WHOLE_ARRAY,   // number of printed elements
   int         flags=-1
)
  {
   if(count==WHOLE_ARRAY)
      count = ArrayRange(array, 0);
   int columns  = ArrayRange(array, 1);
   string column_print ="       ";
   for(int cols=0; cols<columns; cols++)
     {
      column_print += StringFormat("[,%d]    ",cols);
     }
   for(int row=count-1; row>=0; row--)
     {
      string row_print = StringFormat("[%d,]  ",row);
      for(int col=columns-1; col>=0; col--)
        {
         row_print += StringFormat("%s    ",string(array[row][col]));
        }
      PrintFormat("%s",row_print);
     }
   PrintFormat("%s",column_print);
  }

Но я должен написать разные функции для разных размеров массива.

Мой код использует 2 измерения, иногда одно измерение. Или когда-то многомерный.

Пожалуйста, дайте мне знать.

Я видел в MQL5, у него есть одно определение, и он работает эффективно. Но я не смог написать что-то подобное.

Пожалуйста, дайте мне знать.

 
Может кто-нибудь помочь мне с этим?