Баг компилятора. Массив в шаблонном классе: default constructor of struct is not defined - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кстати, VС это еще на стадии компиляции чухнул ))
Просто Вы неправильно перевели из MQL в С++
да, не увидел, что у ТС массив пустой.
Ну это ж вы делаете какие-то заявления. С вас и объяснения.
К слову, данный код у меня прекрасно компилировался и работал на старых билдах, но я всё-равно с любопытством выслушаю вашу версию )
Понимаю, что рассчитываете на исходный нулевой ArraySize динамического массива. Поэтому в конструкторе с этим массивом ничего делать нельзя, чтобы не поймать рекурсию.
Про рекурсию поторопился, был не прав.
В общем, чтобы обойти этот баг, я нашёл 2 варианта решения:
1. Более замороченный: поместить данный массив внутрь обёртки из класса и потом создавать/удалять динамический объект. Соответственно доступ к массиву становится более длинный (в плане синтаксиса)
2. Убрать все конструкторы из данной структуры, а от неё унаследовать другую структуру с конструкторами. Ну и тип массива поменять. Правда такой вариант не всегда подойдёт.
В общем, чтобы обойти этот баг, я нашёл 2 варианта решения:
А зачем усложнять?
struct A { A a[]; //нормально A() {} };
Зачем усложнять?
Влияние очередности строк - круто.