Ошибки, баги, вопросы - страница 2719

Vict:

Не думаю, что со своим уставом стоит лезть в чужое болото.

[Удален]
Sergey Dzyublik:

Не думаю, что со своим уставом стоит лезть в чужое болото.

Наркоман? fxsaber попросил совета, я ответил.

[Удален]
fxsaber:

По-моему, поля, которые после создания никогда не будут (и не должны) меняться, логично прописывать const.

Нет. Константные поля делают в очень редких случаях. И не для простых типов.

Vict:

Наркоман? fxsaber попросил совета, я ответил.

Будьте попроще и к вам потянутся...

Koldun Zloy:

Нет. Константные поля делают в очень редких случаях. И не для простых типов.

Простой пример. Нужно иметь массив МАшек с заданными периодами.

Каждая МАшка - объект одного типа. Понятно, МАшка однозначно задается периодом. Поэтому логично его сделать const.


ЗЫ В других языках делают просто массив указателей. В MQL такой свободы нет.

Koldun Zloy:

Нет. Константные поля делают в очень редких случаях. И не для простых типов.

Вы знаете как устроен оптимизатор и компилятор MQL?
Откуда такая уверенность, что const поля простых типов не используется для этих целей?

В очередной раз возникает проблема с бесполезными warnings при компиляции кода МТ5(build 2380).
Прошу рассмотреть возможность отключения ненужных для разработчика предупреждений компилятора:
declaration of 'm_range' hides member   
   in template 'NodeArray<NodeArray<TailArray<int>>>' specified with [T=NodeArray<TailArray<int>>]      
   see previous declaration of 'm_range'        
declaration of 'm_range' hides member
   in template 'NodeArray<NodeArray<NodeArray<TailArray<int>>>>' specified with [T=NodeArray<NodeArray<TailArray<int>>>]
   see previous declaration of 'm_range'

Исходный код, прототип мультиразмерного массива (C++ online: https://onlinegdb.com/Hk7QjyRdL):
#define PRINT(x) ; Print(#x, ":", string(x))

template<typename T>
class TailArray{
protected:
   int m_index;
   T data[];
   
protected:
   TailArray(){}   
public:     
   TailArray(int size){
      ArrayResize(data, size);
      m_index = 0;
   };
   
   T value(){
      int index = m_index;
      m_index = 0;
      return data[index];
   }
   const T operator=(const T value){
      data[m_index] = (T)value;
      m_index = 0;
      return value;
   };
};

template<typename T>
class NodeArray : public T{
protected:
   int m_range;
   
protected:
   NodeArray(){}   
public:     
   NodeArray(const NodeArray &src){ this = src;}
   template<typename T_int> NodeArray(T_int count, T_int r1) : T(count * r1), m_range(r1){}
   template<typename T_int> NodeArray(T_int count, T_int r1, T_int r2) : T(count * r1, r2), m_range(r1){}
   template<typename T_int> NodeArray(T_int count, T_int r1, T_int r2, T_int r3) : T(count * r1, r2, r3), m_range(r1){}
   
   T* operator[](int index){
      this.m_index = this.m_index * this.m_range + index;
      return &this;
   }
};


#define MultiArray(type, size) MultiArray##size(type)
#define MultiArray2(type) NodeArray<NodeArray<TailArray<type>>>
#define MultiArray3(type) NodeArray<NodeArray<NodeArray<TailArray<type>>>>


template<typename T>
class MultiArrayCreate{
public:
   static MultiArray(T, 2) Size(int range_1, int range_2){
      return (MultiArray(T, 2)(range_1, range_2, 1));
   }
   static MultiArray(T, 3) Size(int range_1, int range_2, int range_3){  
      return (MultiArray(T, 3)(range_1, range_2, range_3, 1));
   }
};


void OnStart(){
   MultiArray(int, 2) arr_2 = MultiArrayCreate<int>::Size(4, 4);
   MultiArray(int, 3) arr_3 = MultiArrayCreate<int>::Size(4, 4, 4);
   
   arr_2[0][0] = 2233;
   arr_3[3][3][3] = 4455;
   PRINT(arr_2[0][0].value());
   PRINT(arr_3[3][3][3].value());
}

Всем добрый день!

Подскажите пожалуйста как вставить картинку в описание скрипта при оформлении и последующей публикации в CodeBase?

У меня есть только, почему то, вставка видео с Youtube..., а иконки вставки рисунка НЕТ! :(

Заранее Спасибо! :)

gsl17:

Всем добрый день!

Подскажите пожалуйста как вставить картинку в описание скрипта при оформлении и последующей публикации в CodeBase?

У меня есть только, почему то, вставка видео с Youtube..., а иконки вставки рисунка НЕТ! :(

Заранее Спасибо! :)

Кнопка вставки рисунка  Кнопка рисунок доступна пользователем начиная с некоторого минимального рейтинга. Очевидно у Вас недостаточен рейтинг для работы с кнопкой   Кнопка рисунок .

Vladimir Karputov:

Кнопка вставки рисунка   доступна пользователем начиная с некоторого минимального рейтинга. Очевидно у Вас недостаточен рейтинг для работы с кнопкой    .

Спасибо за пояснения.

Печалька ... 

P.S. Да, действительно, я первый раз выставлял скрипт на CodeBase.