LINUX.ORG.RU
ФорумTalks

Если вы пишете на c++98/99, то какие ограничения не позволяют вам перейти на c++11/14/17?

 ,


0

5

Я могу придумать только одно и одно с большой натяжкой:

На какой-то embedded железке нельзя обновить ос и компилятор. Ну или начальство не разрешает... что странно.

Какие есть ещё? И да, разумеется разработка под Linux.

★★★★★

Большое количество серверов с говномамонтным дебианом, обновлять их сложно, а исторически сложилось так, что собирают прямо не отходя от кассы.

Softwayer ★★
()

На какой-то embedded железке нельзя обновить ос и компилятор.

Самое распространенное - AVR, MSP430, Cortex-M, под это дело уже есть gcc 7.2.0. Про пики не знаю, может тоже есть что-то. Остаются только совсем уж древние и специфические железки.

Meyer ★★★★★
()

Когда нужно собирать древним компилятором, по какой-то причине.

RazrFalcon ★★★★★
()
Ответ на: комментарий от lenin386

Хахаха. Скажем дружно. Нафиг нужно.

Толсто вбрасываешь ;)

Meyer ★★★★★
()
Ответ на: комментарий от sniper21

Чёрт, либо я выдал желаемое за действительное, либо афтар заголовок поравил.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от sniper21

c++ я про с++, да да Си есть только 11 или будет.

Тю. А чего ж дезу такую вкинул сначала? Кстати, году в 20 скорее всего можно ждать новый Си.

Meyer ★★★★★
()
Ответ на: комментарий от Meyer

Нет не правил C++ написано изначально

sniper21 ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

auto нормально так скрывает переменную, что непонятно что там вернулось. Но волосы и правда мягкие и шелковистые :)

sniper21 ★★★★★
() автор топика
Последнее исправление: sniper21 (всего исправлений: 1)

Еще всякие военные, у которых всякие сертифицированные РОСА, и последний gcc там чуть ли не 2.9

CatsCantFly
()
Ответ на: комментарий от Softwayer

Большое количество серверов с говномамонтным дебианом

Впролне приличное подмножество С++11 есть уже в Debian 5 (8 лет назад).

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

нельзя обновить ос и компилятор

This.

tailgunner ★★★★★
()
Ответ на: комментарий от lenin386

Я вижу ровно 0 (нуль) полезного в c++11/14/17.

То есть, практическим программированием на с++ ты не занимаешься.

Manhunt ★★★★★
()

Какие есть ещё?

Рак мозга, например.

Unicode4all ★★★★★
()

На какой-то embedded железке нельзя обновить ос и компилятор.

Со стороны заказчиков бывают требования по поддержке вусмерть тухлых ОС. Например, rhel4. Нацелить на неё современный компилятор (и не сломать его при этом) - это определенный объем работы.

Ну или начальство не разрешает... что странно.

Компиляторы от версии к версии становятся всё агрессивнее и строже. При большой и не очень качественной кодовой базе, обновление компилятора - это трудозатраты (хотя бы просто добиться, чтобы оно собралось) и риск трудноразбираемых багов вокруг UB. Так что начальство может считать, что овчинка не стоит выделки.

Manhunt ★★★★★
()

Не всякая кодовая база на c++03 успешно скомпилируется под новые стандарты. Модернизировать старый код - это время и деньги. Не все готовы это оплачивать.

eao197 ★★★★★
()

Какие есть ещё?

Любовь к хорошо разложившимся трупам.

Sociopsih ★☆
()

Есть такое ограничение, называется «зачем?». Эффективно ограничивает от ненужно.

Deleted
()

Ну, допустим клиентская база, если делаешь API. Чем тухлее и стабильнее стандарт - тем больше у тебя клиентов, до определенного момента.

И до момента когда всякий дремучий энтерпрайз решит что риски достаточно низки что бы инкрементировать версию стандарта, имхо ещё довольно далеко.

pon4ik ★★★★★
()
Ответ на: комментарий от Napilnik

А разве для коммерции это плохо?

Для того же результата тратишь больше времени и денег на работу, которую можно выполнить быстрее и проще. В любом случае плохо.

Это даже для работников плохо, потому что снижает мораль и повышает усталость.

i-rinat ★★★★★
()

Поддержка CentOS 6 =) Но в новых продуктах стали использовать c++11/14/17

neon1ks ★★
()
Ответ на: комментарий от tailgunner

Впролне приличное подмножество С++11 есть уже в Debian 5 (8 лет назад).

В Debian 7 в gcc 4.7 некоторых моментов не хватает, и это напрягает. Кажется, emplace у std::vector или что-то вроде того.

i-rinat ★★★★★
()
Ответ на: комментарий от Meyer

Если вы пишете на c++98/99, то какие ограничения не позволяют вам перейти на c++11/14/17?

Да и речь о Си без плюсов.

Ну-ка, это вгде такая речь?

Кресты 17 и 9х это такие разные диалекты уже. Шутки о языке-помойке не смешат уже.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

Ну-ка, это вгде такая речь?

Вроде изначально была опечатка (Си без плюсов) или же мне показалось...

Meyer ★★★★★
()
Ответ на: комментарий от i-rinat

Для того же результата тратишь больше времени и денег на работу, которую можно выполнить быстрее и проще. В любом случае плохо.

А как же капитализьм, поиск своего места на рынке, влезание в финпоток? Без этого денег не будет, их другие получат и не поделятся. Написал прогу на фортране и поддерживай и развивай её 100 лет, что может быть лучше, если доходы растут:)))

Napilnik ★★★★★
()
Ответ на: комментарий от sniper21

Это очевидно, но когда софт работает и есть не просит особо, то об этом не думают.

eao197 ★★★★★
()
Ответ на: комментарий от i-rinat

Впролне приличное подмножество С++11 есть уже в Debian 5 (8 лет назад).

В Debian 7 в gcc 4.7 некоторых моментов не хватает

Эээ... и что? Это причина всё писать на C++98?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Впролне приличное подмножество С++11 есть уже в Debian 5 (8 лет назад).

В Debian 7 в gcc 4.7 некоторых моментов не хватает

Эээ... и что?

Я к тому, что в Debian 7 использование C++11 доставляет ощутимые неудобства. Чего уж там говорить о Debian 5. Не пробовал писать на той версии с++0x, но кажется мне, что это могут делать только отчаянные энтузиасты.

i-rinat ★★★★★
()
Ответ на: комментарий от Napilnik

А как же капитализьм, поиск своего места на рынке, влезание в финпоток?

Так и произойдёт. Если, конечно, не получится сделать vendor lock-in.

Написал прогу на фортране и поддерживай и развивай её 100 лет, что может быть лучше, если доходы растут:)))

Просто придёт другой, который предложит цену в два раза ниже за аналогичный продукт, и перейдут на него. А цена в два раза ниже будет благодаря тому, что затраты на разработку и поддержку будут в 10 раз ниже.

i-rinat ★★★★★
()

>какие ограничения не позволяют вам перейти на c++11/14/17?

«работает - не трогай» :)

slackwarrior ★★★★★
()
Ответ на: комментарий от i-rinat

Не пробовал писать на той версии с++0x, но кажется мне, что это могут делать только отчаянные энтузиасты.

Так могут делать все, кому хочется чего-то большего, чем C++98. Уже одни shared_ptr и unique_ptr очень сильно облегчают жизнь (но да, unique_ptr придется позаимствовать из Сети).

tailgunner ★★★★★
()
Ответ на: комментарий от i-rinat

Просто придёт другой, который предложит цену в два раза ниже за аналогичный продукт, и перейдут на него. А цена в два раза ниже будет благодаря тому, что затраты на разработку и поддержку будут в 10 раз ниже.

А сможет ли сделать аналогичный продукт качеством не ниже? Глупо не включить в продут фичи трудно реализуемые на новых плюсах. Например такие: чтобы спланировать продукт, надо уметь программировать и не знать глубоко плюсы. Написать то их можно будет, но кто же нарисует погроммистам правильные схемки на бумажках? Сами они не смогут, т.к. узкие специалисты.

Napilnik ★★★★★
()
Ответ на: комментарий от i-rinat

Думаю, что те, кому очень хочется, уже вполне могли сделать #include <boost/shared_ptr.hpp>.

Если у них использовался boost (или им разрешили его добавить). А unique_ptr в Boost есть?

А что насчет decltype, variadic templates?

tailgunner ★★★★★
()

Что такое C++99?

d_a ★★★★★
()
Ответ на: комментарий от upcFrost

А для этого в крестах есть есть язык шаблонов без типизации. Можно получить филиал питона во время компиляции.

oldstable
()
Ответ на: комментарий от tailgunner

А что насчет decltype, variadic templates?

Глупо спорить с тем, что больше выразительных возможностей делают жизнь проще. Особенно, если их используют не бездумно, а со вкусом.

Но я говорю про другое. В старых версиях компиляторов — особые версии C++0x, это не C++11. Возможно, кому-то достаточно. Мне вот — нет. И это притом, что я эти decltype и variadic templates не использую. Мне больнее использовать порезанный C++11, чем старый C++2003.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

В старых версиях компиляторов — особые версии C++0x, это не C++11.

Ничего особенного - подмножество.

Возможно, кому-то достаточно. Мне вот — нет.

И вывод... какой? Что тем, кто писал на C++98, вообще не следует эти возможности использовать?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.