Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
#1

C++11 в production, да или нет? - C++

29.01.2015, 21:09. Просмотров 788. Ответов 20
Метки нет (Все метки)

Всем привет. Выбил все-таки разрешение юзать С++11 на работе, по мелочи, лямбды вместо предикатов, range-based-for, auto. Сегодня наш тех. директор отключил весь С++11 (всего неделю продержались), ибо не хочет, чтобы код выглядел как на питоне (из-за auto) + к тому на странице gcc написано
Important: GCC's support for C++11 is still experimental. Some features were implemented based on early proposals, and no attempt will be made to maintain backward compatibility when they are updated to match the final C++11 standard.
Соответственно, в аргументы пошло, то, что экспериментальная поддержка в продуктиве - плохо. Как возможно доказать обратное и что auto не зло? И стоит ли это делать? Аналогично, если у вас есть опыт использования в продакшне - поделитесь проблемами с которыми столкнулись или профитом, который принесло использование. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2015, 21:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос C++11 в production, да или нет? (C++):

Ошибка с массивами, хотя формально её нет (похожи ли массивы или нет?) - C++
Всем доброго времени суток!) В общем имею такую великолепную чтуку, она должна говорить мне, похожи ли массивы или нет, массив должен...

Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если требуемых слов нет - C++
Дана последовательность символов, состоящая из слов. Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если...

Как найти текст в файле и возвратить 0 или 1 в зависимости от того,найдено или нет? - C++
bool fnd(char* fn,string stf) { string s; ifstream ifs(fn); while (!ifs.eof()) { getline(ifs,s); ...

Вывести True или False в зависимости от того, имеют три заданных целых числа одинаковую четность или нет - C++
Всем привет! Помогите, пожалуйста в решении задачи. Знаю, что задачи более,или менее лёгкие,но я в c++ почти ничего не смыслю, а лабы...

Опечатка или нет? - C++
class my_class { public: my_class() { a = b = 0; } my_class(constint...

симафор или нет? - C++
ПРивет всем! написал программу для следующего задания с использованием симафора: Написать программу, создающую два потока. Оба...

20
DrOffset
7517 / 4513 / 1025
Регистрация: 30.01.2014
Сообщений: 7,362
29.01.2015, 21:34 #2
Цитата Сообщение от ForEveR Посмотреть сообщение
Соответственно, в аргументы пошло, то, что экспериментальная поддержка в продуктиве - плохо.
Вообще я не сторонник использования С++11. Но речь не об этом.
А вот процитированный аргумент не терпит критики.
На том же сайте gcc написано следующее:
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software.
Ну что ж, давайте не пользоваться gcc, раз он не дает никаких гарантий.

Цитата Сообщение от ForEveR Посмотреть сообщение
Как возможно доказать обратное и что auto не зло? И стоит ли это делать?
Я тоже считаю, что это зло. Но не сам auto (т.к. это инструмент и ни в чем не виноват), а то как его пиарят. Как будто серебряная пуля какая-то. Уж больно велик шанс неправильного использования.
1
Robar
21 / 21 / 10
Регистрация: 08.01.2015
Сообщений: 64
29.01.2015, 22:00 #3
Цитата Сообщение от ForEveR Посмотреть сообщение
чтобы код выглядел как на питоне (из-за auto)
лол)) Вы сегодня мой герой.
0
nmcf
6095 / 5406 / 1889
Регистрация: 14.04.2014
Сообщений: 22,525
29.01.2015, 22:40 #4
Что не так с auto? Короче же.
0
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.01.2015, 22:50  [ТС] #5
DrOffset,
Ну что ж, давайте не пользоваться gcc, раз он не дает никаких гарантий.
Интересная цитата, спасибо.
Цитата Сообщение от Robar Посмотреть сообщение
лол)) Вы сегодня мой герой.
Ну, это.
Python
1
for (value in values)
C++
1
for (const auto& value : values)
Похоже же. Понятно, что в одном случае динамический вывод типов, в другом статический на этапе компиляции.
Цитата Сообщение от nmcf Посмотреть сообщение
Что не так с auto? Короче же.
Отрыв от контекста видимо, не увидишь с каким типом оперируешь, особенно без IDE.
0
DU
1485 / 1131 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 23:05 #6
у меерса в новой книжке написано, что могут быть глюки с использованием auto в
определенных контекстах, в которых используются прокси классы. у вектора булов например
может рантайм еррор возникнуть из-за того, что v[index] возвращает хитрую хитрость вместо
ссылки на буль и бла бла бла. в общем лучше почитать. но все же это редкость. иногда контекста
действительно не хватает. но это не повод отказываться.
1
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.01.2015, 23:30  [ТС] #7
DU2, Читал, да. Есть контексты в которых auto может работать не совсем так как обычно, но их можно пересчитать по пальцам.
0
Croessmah
Ушел
13769 / 8019 / 924
Регистрация: 27.09.2012
Сообщений: 19,744
Записей в блоге: 3
Завершенные тесты: 1
29.01.2015, 23:33 #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Сегодня наш тех. директор отключил весь С++11 (всего неделю продержались)
ForEveR, а с move-семантикой тоже не согласен?
0
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.01.2015, 00:40  [ТС] #9
Croessmah, В основном используются shared_ptr на объекты, а учитывая работу с БД, как-то оптимизации копирования особо много не стоят. Хотя про move семантику я не упомянул, когда говорил для чего мы подключили С++11...
0
Croessmah
Ушел
13769 / 8019 / 924
Регистрация: 27.09.2012
Сообщений: 19,744
Записей в блоге: 3
Завершенные тесты: 1
30.01.2015, 01:25 #10
ForEveR, имхо, налегать надо именно на возможности, которые будут необходимы и полезны.
Например, на тоже перемещение или на многопоточность. Согласитесь, что если сам язык поддерживает многопоточность(тот же thread storage duration), то это много лучше, чем втыкание костылей для работы с потоками.
А все эти
Цитата Сообщение от ForEveR Посмотреть сообщение
мелочи, лямбды вместо предикатов, range-based-for, auto
это ведь синтаксический сахар, врядли этим можно аргументировать полезность внедрения C++11.
В конце концов Вы же не станете писать комментарии на французком лишь по той причине, что они будут красиво звучать при прочтении.

Цитата Сообщение от ForEveR Посмотреть сообщение
Как возможно доказать обратное и что auto не зло?
Никак. Добро и зло понятия слишком расплывчатые.
1
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.01.2015, 08:47  [ТС] #11
Croessmah, Потоки вообщем-то не используем, только процессы.
Цитата Сообщение от Croessmah Посмотреть сообщение
это ведь синтаксический сахар, врядли этим можно аргументировать полезность внедрения C++11.
Ну, мы вот как раз С++11 хотели внедрить именно из-за удобства разработки, лямбды, вместо предикатов на каждый чих, или range-based-for вместо std::for_each ибо была просьба не использовать чистые for циклы, а использовать STL по максимуму.
0
CheshireCat
30.01.2015, 10:24
  #12

Не по теме:

Цитата Сообщение от ForEveR Посмотреть сообщение
Выбил все-таки разрешение юзать С++11 на работе, по мелочи, лямбды вместо предикатов, range-based-for, auto. Сегодня наш тех. директор отключил весь С++11 (всего неделю продержались), ибо не хочет, чтобы код выглядел как на питоне (из-за auto)
Эмммм.... Это как??? У вас в конторе что - нет утвержденного стандарта кодирования? Все делается по личным договоренностям? Может, у вас даже багтрекера нет и VCS нет?

0
ForEveR
30.01.2015, 10:31  [ТС]
  #13

Не по теме:

CheshireCat, Контора небольшая. Попробовали С++11 по личной договоренности. Стандарта кодирования нет. Остальное есть.

0
Voivoid
677 / 280 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
30.01.2015, 14:29 #14
Ох, лол, пора уж на C++14 мигрировать, какой уж там C++11

Цитата Сообщение от ForEveR Посмотреть сообщение
Сегодня наш тех. директор отключил весь С++11
Вангую, что ваш тех. дир. или вообще не программист, или программист откровенно фиговый. Добавили столько-то возможностей в языке для написания более лаконичного, безопасного, выразительного кода, но нет, луддитам это все не нужно, дай им волю, так и продолжали бы педалить код на фортране.

Цитата Сообщение от ForEveR Посмотреть сообщение
ибо не хочет, чтобы код выглядел как на питоне (из-за auto)
лолшто? Хотя в принципе понятно, у человека просто отсутсвут логика, а мышление слаборазвито. И вместо того, чтобы основывать свои суждения на фактах и здравом смысле, он просто принимает на веру некое чужое мнение, на основании которого уже строит ассоциативные выводы.

Цитата Сообщение от ForEveR Посмотреть сообщение
что экспериментальная поддержка в продуктиве - плохо
родуктиве - плохо.
Ну юнит-тестов у вас тоже нет?

Цитата Сообщение от ForEveR Посмотреть сообщение
Аналогично, если у вас есть опыт использования в продакшне - поделитесь проблемами с которыми столкнулись или профитом, который принесло использование
Проблем нет. Юзаем C++14 ( clang 3.4, gcc 4.9 ). Профитов - море, не знаю даже с чего начать, думаю ты сам можешь оценить какой для себе будет профит. Ну а так вообще вот например с помощью variadic templates мне удалось написать довольно интересную обобщенную библиотеку которая позволила избаться от написания кучи ручного кода

Цитата Сообщение от ForEveR Посмотреть сообщение
Сегодня наш тех. директор отключил весь С++11
Ну есть еще вариант, что ему на все пофиг, сам-то он не программирует. А что-то даже чуть-чуть менять ему не хочется, ибо извечный принцип: работает - не трогай, лол.

Добавлено через 10 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
это ведь синтаксический сахар, врядли этим можно аргументировать полезность внедрения C++11.
С такой логикой далеко можно зайти. Этак вообще можно сказать, что C++ не нужен и избыточен, мол просто C вполне достаточно
1
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.01.2015, 14:31  [ТС] #15
Voivoid,
Цитата Сообщение от Voivoid Посмотреть сообщение
Вангую, что ваш тех. дир. или вообще не программист, или программист откровенно фиговый.
Программист отличный и не только на плюсах. Нас всего трое программистов на С++ в конторе и он делает большинство работы естесно.
Цитата Сообщение от Voivoid Посмотреть сообщение
Ну юнит-тестов у вас тоже нет?
Есть конечно.
Цитата Сообщение от Voivoid Посмотреть сообщение
Проблем нет. Юзаем C++14 ( clang 3.4, gcc 4.9 ). Профитов - море, не знаю даже с чего начать, думаю ты сам можешь оценить какой для себе будет профит. Ну а так вообще вот например с помощью variadic templates мне удалось написать довольно интересную обобщенную библиотеку которая позволила избаться от написания кучи ручного кода
Спасибо, полезно.
Цитата Сообщение от Voivoid Посмотреть сообщение
А что-то даже чуть-чуть менять ему не хочется, ибо извечный принцип: работает - не трогай, лол.
Постоянно рефакторим код, чтобы он выглядел еще лучше, чем выглядел до этого, так что данный вариант тоже не подходит.

Вообще, он начал разбираться из-за того, что не работала программа, я два дня сидел с дебаггером, функция просто не вызывалась, хотя в коде вызов есть. Оказалось в итоге, что дело все-таки было в С++11 (точнее в том, что некоторые либы собраны с ним, другие без него). Но позиция по auto и т.д. не изменилась конечно...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2015, 14:31
Привет! Вот еще темы с ответами:

Палиндром или нет? - C++
Определить, является ли заданное натуральное число палиндромом, т.е. таким, десятичная запись которого читается одинаково слева направо и...

Полиндром или нет? - C++
#include <iostream> #include <cstdio> using namespace std; int main() { setlocale(LC_ALL,"Russian"); bool otvet; int i;...

Цикл: правильно или нет? - C++
Знающие люди, подскажите пожалуйста... Есть такая задачка: http://pic.ipicture.ru/uploads/090209/FqJj1Wz56M.jpg необходимо вычислить...

Coding style или нет - C++
Услышал сегодня от коллеги такую интересную вещь: есть блоки кода ограниченные командными скобками {}. Так вот, рекомендуется переменные,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru