Перейти к содержанию
    

раскуриваю stm32h7xx_hal_flash.c

1 час назад, Forger сказал:

Так покажите пожалуйста, где этот auto как вполне рядовая вещь начиная аж с C++11, стала вдруг создавать такие проблемы (на примере цикла for) ?

auto - это вроде как задание типа памяти? Подобно static или register. Тогда где указание типа переменной (int/unsigned/...)? Я так полагаю - компилятор ругается на то, что как раз тип и не указан. Естественно он подставит дефолтный тип (int) предварительно обругав горе-программиста. И какой тогда смысл всего этого (auto без явного указания типа)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, scifi said:

Предупреждение: "так как тип не указан, подразумевается int".

Ну и да, если не хотите почитать, что такое "auto", то и не надо. Так даже лучше: невежество - блаженство, меньше знаешь - лучше спишь, от многой мудрости много скорби, умножающий знание умножает печаль и т.д. :acute:

Я пишу под C++ (как минимум C++11), auto - это вполне типовая вещь, значительно упрощает код наравне с другими дополнениями. 

Логично, что у C конструкция auto вызывает лютый butthurt. Это нормально. Для архаичного языка.

 

10 minutes ago, jcxz said:

auto - это вроде как задание типа памяти? Подобно static или register. Тогда где указание типа переменной (int/unsigned/...)? Я так полагаю - компилятор ругается на то, что как раз тип и не указан. Естественно он подставит дефолтный тип (int) предварительно обругав горе-программиста. И какой тогда смысл всего этого (auto без явного указания типа)?

В голом C это обстоит именно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, Forger сказал:

В голом C это обстоит именно так.

В си++ - тоже так. Вот что выдаёт IAR_7.80.4 на такое "художество": "Error[Pe260]: explicit type is missing ("int" assumed) D:\WORK\INVERTOR\WORK.SRC\ENET\dns.cpp 256 ".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, jcxz said:

В си++ - тоже так. Вот что выдаёт IAR на такое "художество": "Error[Pe260]: explicit type is missing ("int" assumed) D:\WORK\INVERTOR\WORK.SRC\ENET\dns.cpp 256 ".

auto - это конструкция не просто языка С++, полноценно работает как минимум в C++11.

Поэтому см. настройки компилятора, в некоторых старых компиляторах эта настройка по-умолчанию стоит на С++98.

 

Использую ARM Compiler v6, в нем С++11 - full supported, включена по-умолчанию, при желании можно включить даже C++14, но пока только частично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, Forger сказал:

Использую ARM Compiler v6, в нем С++11 - full supported, включена по-умолчанию, при желании можно включить даже C++14, но пока только частично.

Кто-то тут только что упрекал другого участника в том, что тот не указывает тип и версию используемого компилятора. Сам при этом используя редкий, мало кем используемый диалект и также не указывая что речь идёт про него  :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, jcxz said:

Кто-то тут только что упрекал другого участника в том, что тот не указывает тип и версию используемого компилятора. Сам при этом используя редкий, мало кем используемый диалект и также не указывая что речь идёт про него  :wink:

Указал это сразу же:

2 hours ago, Forger said:

С антикварными компиляторами давно не работал, спорить не буду, тут вам виднее :scratch_one-s_head:

С другой стороны согласен, многие еще остались в прошлом 20м веке. Это факт у меня все еще вызывает удивление. Никак не привыкну. Пардон :blush:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

IAR, конечно, отстаёт от GCC в поддержке стандарта, но они стараются. Уже сейчас он вот такую няшку компилирует.

template<auto f(), unsigned N>
void inline Repeat() __attribute__((always_inline))
{
  if constexpr (N)
  {
    f();
    Repeat<f, N-1>();
  }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, VladislavS said:

Так точно!

Если даже голые плюсы тут по-прежнему вызывают "лютые разрывы пуканов", то что уж говорить про C++17 :big_boss:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Forger сказал:

Если даже голые плюсы тут по-прежнему вызывают "лютые разрывы пуканов", то что уж говорить про C++17 :big_boss:

Помнить, чем там отличается C++11 от C++14, и в свою очередь, чем от них отличается C++17... А через год, глядишь, и опять разбираться придется; либо, впопыхах впихивая новые фишечки, старое компилиться перестанет:on_the_quiet2:

А тот же C99 уже как бэ не девочка:spiteful: и для разработки под МК его более чем хватает.

Впрочем, дело вкуса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примерно также рассуждали адепты плоской земли, попутно сжигая на костре Джордано Бруно ...

 

Потребность в новом инструменте возникает, когда старый слишком сильно затупился  и  тормозит дело.

А дай неандертальцу отвертку, так он ею будет тыкать в сородичей :)

 

Так что тут дело не вкуса, а скорее прогресса ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В былинные времена были холивары асм-си. Дожили до си-си++. Жду с нетерпением си++11-си++17. Запасаюсь попкорном :popcorm2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, scifi сказал:

В былинные времена были холивары асм-си...

Ну вот ассемблером я иногда, все же, пользуюсь. Редко, конечно, относительно основного кодирования, но, бывает.

ИМХО, каждый работает с тем, с чем ему удобнее. Главное хорошо разбираться в своем же творческом беспорядке:wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...