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

C++

Войти
Регистрация
Восстановить пароль
Результаты опроса: Почему вы избегаете использовать С++11 ?
еще не дошел до изучения. 23 37.10%
а зачем мне оно? 13 20.97%
мой компилятор не поддерживает. 18 29.03%
а что это? оО 11 17.74%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 62. Вы ещё не голосовали в этом опросе

 
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.65
niXman
Эксперт С++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
#1

Почему вы избегаете использовать возможности С++11 ? - C++

13.01.2012, 12:08. Просмотров 10951. Ответов 123
Метки нет (Все метки)

всем привет.

сабж.

я-то, в полную использую. везде где только могу.
но частенько вижу вопросы типа: "а без использования С++0х нельзя?"
любопытна аргументация.

благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2012, 12:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему вы избегаете использовать возможности С++11 ? (C++):

Почему нельзя использовать более одной TServerSocket? - C++ Builder
Пробовал использовать в программе две компоненты TserverSocket и не получилось. Выдает ошибку: «Обычно разрешается одно использование...

Почему следует избегать явного приведения типов? (по возможности) - C++
Почему следует избегать явного приведения типов? (по возможности)

Почему не получается использовать bitset в VC++? - C++
Никак не получается использовать bitset в VC++6 . Очень надо - двоичный вектор . В стандарте описан bitset , но работать отказывается ....

Почему не рекомендуется использовать препроцессор? - C++
Я сейчас активно пользуюсь #define для упрощения понимания кода. Например, у меня сложная система классов, что бы получить одну...

Почему break нельзя использовать в if? - C++
почему break нельзя использовать в if вот код if(f.eof()==1) { break; } про break MVS говорит что ОПЕРАТОР break...

Почему плохо использовать unsigned int? - C++
Почему плохо использовать unsigned int и чему он удобней для представления массивов бит чеm signed int? (Из Страуструпа)

123
hoggy
6636 / 2821 / 484
Регистрация: 15.11.2014
Сообщений: 6,240
Завершенные тесты: 1
25.07.2016, 00:07 #76
Цитата Сообщение от Убежденный Посмотреть сообщение
Другая причина в том, что работа с новым C++ требует новых версий
Visual Studio, а это означает отказ от Windows XP и, например, от "древних"
процессоров, у которых нет поддержки определенных команд типа SSE2.
все старшие студии умеют тулчейн "сборка под xp".
можно спокойно применять все эти новомодные плюшки,
и при этом собирать под xp

Цитата Сообщение от Убежденный Посмотреть сообщение
Как мне кажется, наибольшую выгоду от C++11 и выше получают разработчики
всевозможных библиотек с шаблонами и метапрограммированием - Boost,
STLSoft и т.п.
а прикладники эти самые библиотеки используют.
с этим самым "юзабельным" дизайном.

да и в самом этом прикладном коде всякие auto/мувы/etc - удобно же.
и много где хочется применять.

Цитата Сообщение от Убежденный Посмотреть сообщение
хватает и того, что есть в C++98
ну да. как то же писали софт.
и ничего, живые.

вот только с позиции сегодняшнего дня,
вспоминая c++03, я думаю:
это ж сколько всяких геморняков приходилось преодолевать,
которых сегодня либо нет вообще,
либо разруливаются они элементарно.
0
Убежденный
Системный программист
Эксперт С++
15618 / 7127 / 1128
Регистрация: 02.05.2013
Сообщений: 11,567
Записей в блоге: 1
Завершенные тесты: 1
25.07.2016, 09:19 #77
Цитата Сообщение от hoggy Посмотреть сообщение
все старшие студии умеют тулчейн "сборка под xp".
можно спокойно применять все эти новомодные плюшки,
и при этом собирать под xp
hoggy, все не так просто.
Поддержка Windows XP в последних "Студиях" глючная. Есть проблемы с ATL, например:

Visual Studio 2015 cannot produce an ATL Dll that successfully registers on Windows XP
http://stackoverflow.com/questions/3...isters-on-wind

Есть проблемы со сборкой Boost под Windows XP: Boost и XP Toolset

У предыдущих версий Visual Studio также были проблемы, например с InitializeCriticalSectionEx.

И т.д.
2
hoggy
6636 / 2821 / 484
Регистрация: 15.11.2014
Сообщений: 6,240
Завершенные тесты: 1
25.07.2016, 11:51 #78
Цитата Сообщение от Убежденный Посмотреть сообщение
все не так просто.
ну так, 2015 как бы ещё совсем новая считается.
хотя я не удивлюсь, если уже вышла поддержка для буста,
например.

на 2013 я с проблемами не сталкивался)
там и буст собирается, и с ATL проблем никаких не встречал.
только визард сломали)
так что формошлепка под mfc теперь делается ручным приводом)
редактор ресурсов испоганили...
ещё где то по мелочи изгадили...
ну а так все нормально ^_^
0
Убежденный
Системный программист
Эксперт С++
15618 / 7127 / 1128
Регистрация: 02.05.2013
Сообщений: 11,567
Записей в блоге: 1
Завершенные тесты: 1
25.07.2016, 12:10 #79
Цитата Сообщение от hoggy Посмотреть сообщение
на 2013 я с проблемами не сталкивался)
там и буст собирается
Под Windows XP? А не подскажешь рецептик, как это сделать?
(т.е. Boost + XP toolset на VS2013 или другой студии).
0
hoggy
6636 / 2821 / 484
Регистрация: 15.11.2014
Сообщений: 6,240
Завершенные тесты: 1
25.07.2016, 12:24 #80
Цитата Сообщение от Убежденный Посмотреть сообщение
Под Windows XP?
нет. не под xp

Цитата Сообщение от Убежденный Посмотреть сообщение
А не подскажешь рецептик, как это сделать?
но если вам нужен патч для xp,
то я могу попробовать для вас его приготовить.
во всяком случае, есть опыт подсовывания своих собственных тулчейнов в тамошнюю сборку.

но у меня нет возможности проверить решение.

(xp только на работе.
но на работе я такими вещами занимаццо не могу)

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

прокидываем нужное окружение среды.
там ещё дефайн какой то нужно посетить.

для буста все аналогично.
0
Убежденный
Системный программист
Эксперт С++
15618 / 7127 / 1128
Регистрация: 02.05.2013
Сообщений: 11,567
Записей в блоге: 1
Завершенные тесты: 1
25.07.2016, 13:49 #81
Цитата Сообщение от hoggy Посмотреть сообщение
а вообще, не совсем понятно, в чем у вас проблема.
Проблема в том, что я не знаю, как собрать Boost в Visual C++ 2015 с XP-Toolset.
И нормальных решений в Гугле я не нашел. Всякие патчи бинарников, изменение
исходников Буста и т.п. не интересуют.

Цитата Сообщение от hoggy Посмотреть сообщение
прокидываем нужное окружение среды.
там ещё дефайн какой то нужно посетить.
для буста все аналогично.
Я был бы очень признателен, если бы хоть кто-нибудь описал четко
правильную последовательность действий. Лично для меня это бы
стало еще одним шагом в сторону C++11 и выше.
0
Fulcrum_013
Заблокирован
01.08.2016, 07:07 #82
Цитата Сообщение от Nick Alte Посмотреть сообщение
Вот все эти 14-15 лет они их опасным нововведением и считают.
Шаблоны в С++ от рождения. Это один из двух плюсов. Второй из плюсов ООП. Может они ключевое слово class тоже опасным нововведением считают?

Добавлено через 40 минут
Из новомодных фич использую разве что nullptr. удобно. Лямбды использую только в случае острой необходимости, т.е работы с отставшими от жизни лет на 20 компиляторами не имеющими нативных делегатов. Что касается всего остального - то STL не пользую принципиально, а соответственно и все нововведения в ней тоже. Шаблоны тоже особо не наворачиваю, так что хватает и того что было раньше, тем более что шаблоны у меня разве что в инфраструктурной части. т.е. списки владения + набор списков обработки со слежением за жизненным циклом и состоянием содержимого. ну еще деревья такие же. Остальное математика, причем по определенным причинам вся в float без вариантов.
ну explicit еще пользую частенько.
и RAII для нестатик членов тоже удобнейшая штука.
А вот RTTI толкового не хватает. Имеется в виду не только и не столько получение имени полиморфного типа, а получение списка типов в т.ч. инстанционированных шаблонов,средства создания инстанса, информация о свойствах с адресами геттеров и сеттеров. Был бы во всю пользовал бы. (нехватает настолько что приходится сейчас пилить свой препроцессор который его изобразит)
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.08.2016, 07:59 #83
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
работы с отставшими от жизни лет на 20 компиляторами не имеющими нативных делегатов
Это где?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ну explicit еще пользую частенько.
Не нововведение 11 стандарта.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
и RAII для нестатик членов тоже удобнейшая штука.
Поясните, пожалуйста.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А вот RTTI толкового не хватает. Имеется в виду не только и не столько получение имени полиморфного типа, а получение списка типов в т.ч. инстанционированных шаблонов,средства создания инстанса, информация о свойствах с адресами геттеров и сеттеров. Был бы во всю пользовал бы. (нехватает настолько что приходится сейчас пилить свой препроцессор который его изобразит)
Согласен, но это уже ближе к рефлексии, которую многие сильно ждут наряду с concepts и модулями.
0
Fulcrum_013
Заблокирован
01.08.2016, 08:24 #84
Цитата Сообщение от silent_1991 Посмотреть сообщение
Это где?
Это по большому счету все окромя С++ Builder
Цитата Сообщение от silent_1991 Посмотреть сообщение
Поясните, пожалуйста.
C++
1
2
3
4
class foo{
       int bar=5;//вот так
 
}
Цитата Сообщение от silent_1991 Посмотреть сообщение
Согласен, но это уже ближе к рефлексии, которую многие сильно ждут наряду с concepts и модулями.
При этом она у всех есть уже 20 лет но только черти как и с доступом только из своего фреймверка который в комплекте.

Цитата Сообщение от silent_1991 Посмотреть сообщение
Не нововведение 11 стандарта.
для конструкторов с 98-го. А вот для опреаторов с 11-го.

Добавлено через 10 минут
Цитата Сообщение от silent_1991 Посмотреть сообщение
concepts и модулями
Лучше бы static if ввели бы (хотя это не так уж критично). а что касается модулей, то по большому счету в С++ каждая функция или класс является модулем. отмена #include и т.п. сделает систему раздельной компиляции гораздо менее удобной, а в нормальных компиляторах уже лет 20 существует #pragma link позволяющая в хидере указать что добавить в линковку.
1
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.08.2016, 08:36 #85
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При этом она у всех есть уже 20 лет но только черти как и с доступом только из своего фреймверка который в комплекте.
Ну само собой, пока поддержки в ядре языка не будет - будет она везде через одно место реализована...
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
для конструкторов с 98-го. А вот для опреаторов с 11-го.
Я и забыл про это... Согласен, чрезвычайно полезная штука, небольшой шажок к чуть более строгой типизации)

In-place инициализация полей тоже крутая вещь. Не понял только, почему вы её RAII обозвали)

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это по большому счету все окромя С++ Builder
А вот здесь хочется всё же более развёрнутого ответа. О каких нативных делегатах речь?

Добавлено через 6 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Лучше бы static if ввели бы
Если вы об этом, то ждем поддержку 17 стандарта компиляторами)

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
а что касается модулей, то по большому счету в С++ каждая функция или класс является модулем
Мне не очень понятно такое определение, но в любом случае, компилятору надо явно показать, где оно лежит из чего состоит внутри. Если в случае функции достаточно объявить её, а об остальном позаботится линкер, то в случае класса нужно его полное объявление, что зачастую влечёт собой выставление напоказ незначащих для пользователя деталей реализации вместе с интерфейсом класса. Попытка сокрытия этих деталей выливается в использование странных паттернов, которые не архитектуру позволяют улучшить, а просто являются костылями, которых бы не было, будь в языке нормальные модули.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
отмена #include и т.п. сделает систему раздельной компиляции гораздо менее удобной
Вот уж не знаю, в Rust вон сделали модули, и всё очень удобно и прозрачно работает.
0
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
01.08.2016, 12:37 #86
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
компиляторами не имеющими нативных делегатов
И как будет выглядеть в borland'е, ну например, передача компоратора в функцию сортировки?
0
Fulcrum_013
Заблокирован
01.08.2016, 18:37 #87
Цитата Сообщение от Voivoid Посмотреть сообщение
И как будет выглядеть в borland'е, ну например, передача компоратора в функцию сортировки?
С просто функциями все точно так же, но и использование просто функций для параметризации в районе 0 при использовании концепии событийного программирования, в основном требуются обработчики событий . Имеются в виду указатели на методы объекта.
Ведь гораздо проще инициализировать делегата вот так:
C++
1
Event=Obj->Metod;
чем городить огород с лямбдой и замыканием.
0
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
01.08.2016, 18:44 #88
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
С просто функциями все точно так же,
Так же, это как? Какой компаратор будет для сортировки int'ов? Какой компаратор будет для сортировки структуры по одному из полей? Для каждого из этих случаев писать функцию/метод?
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.08.2016, 19:18 #89
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
чем городить огород с лямбдой и замыканием.
Как раз проще написать одноразовую лямбду прямо в том месте, где она нужна, чем описывать отдельную функцию/метод/класс-функтор - т.е. полноценную сущность, и использовать её лишь в одном-единственном месте.
0
Fulcrum_013
Заблокирован
01.08.2016, 19:36 #90
Цитата Сообщение от silent_1991 Посмотреть сообщение
Как раз проще написать одноразовую лямбду прямо в том месте, где она нужна, чем описывать отдельную функцию/метод/класс-функтор - т.е. полноценную сущность, и использовать её лишь в одном-единственном месте.
Не в случае с делегатами-обработчиками событий.
C++
1
2
3
Event=[Obj](type1 arg1,type2 arg2)->rettype{return Obj->Method(Arg1,Arg2); } //так инициализируется делегат при 
помощи лямбды
Event=Obj->Method; // так инициализируется  делегат при нативной поддержке  компилятором, сигнатуру компилятор проверит compile time.
Т.е. нативная поодержка явно выигрывает по читабельности и краткости записи. Если есть еще и переназначение обработчиков, что при событийном программировании на каждом шагу, то лямбда-болото ведет к резкому снижению читабельности и многократному дублированию говнокода.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2016, 19:36
Привет! Вот еще темы с ответами:

Почему не стоит использовать ^(XOR) в swap - C++
Прочитал статейку, http://betterexplained.com/articles/swap-two-variables-using-xor/ Что-то не до понял, почему нельзя...

Почему clear необходимо использовать до seekg? - C++
...и нельзя сразу после? Долго не могла решить проблему пока не наткнулась на тему где f.clear() шел до f.seekg(). И мне стало интересно))...

Пояснить, почему в примере не рекомендуется использовать закрытое наследование - C++
Всем доброго времени суток ! Помогите пожалуйста разобраться с этой фразой на примере . То что я знаю про закрытое наследование ,...

Почему программа в Windows может использовать лишь 1792 мегабайта RAM? - C++
Простейшая программа, для того чтобы узнать сколько памяти можно использовать в системе. int main() { unsigned int...


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

Или воспользуйтесь поиском по форуму:
90
Yandex
Объявления
01.08.2016, 19:36
Ответ Создать тему
Опции темы

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