![]() |
|
Модераторы: bsa |
![]()
|
|
| Ilya83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 5.1.2014 Репутация: нет Всего: нет |
Есть Константы, есть макросы. Зачем придумали constexpr?? На форуме нашел, как чел выпендривается тем, что он может вычислить факториал на этапе компиляции Для этого???
|
|||
|
||||
| disputant |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Ну, например, знаете такую функцию -
Ну, а вычислять факториал на уровне компиляции можно и с помощью шаблонов - как два байта переслать |
||||
|
|||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Можешь посмотреть мою статью, я там привёл некоторые причины, которые объясняют преимущества constexpr.
|
|||
|
||||
| Ilya83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 5.1.2014 Репутация: нет Всего: нет |
vinter, Хах дааа! Вот на чем я застрял! Попытка определить константу в классе. Подскажите, как мне использовать constexp ? Мой компилятор MinGW говорит, что я должен явно указать, что хочу использовать C++11 (windows, qt Creator)
|
|||
|
||||
| Ilya83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 5.1.2014 Репутация: нет Всего: нет |
Проблема решена! Добавил QMAKE_CXXFLAGS += -std=c++11 в .pro файл. Всем спасибо Но свой пример я так и не нашел. Везде пишут про конструктор или функцию Тогда тут что:
??????? Это сообщение отредактировал(а) Ilya83 - 7.1.2014, 13:36 |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
..долгополз
.. дыры затыкают ввиду всякой непродуманности и непоследовательности. Зато зашибись! С рулез! форевер! А я прочитал ещё про пару GCC extensions, вообще крутяк. Здеся вообщ проблемы, что в первом стандарте конструкции типа throw и ряд подобных ввобще не выдержали проверки действительной реальностью. "И это бывает.." Это сообщение отредактировал(а) akizelokro - 7.1.2014, 19:10 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Ilya83, я не очень понимаю твой вопрос. В твоём случае constexpr значит тоже самое, что const
|
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Сегодня же выползли из другой темы, где внутри объявления структуры можно было инициализировать/задавать только const static члены структуры. Небось в своё время возник вопрос, а почему такая несправедливость?
И тут проявилось наследие С, что если проблема навзничь не решается, - она должна быть решена по любому. IMPORTANT***========================================== C++ по подходу даже не выход к ООП, а лишь средство индустриализации С. Но при этом в ООП не стоит задача кроме самореализации, а у С была изначально задача решать все задачи. -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| Ilya83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 5.1.2014 Репутация: нет Всего: нет |
Дык вот и я о том же!!! Все норм. люди делают константы. Только Сишникам надо обязательно выя.....ца. Написать код в 1-ну строчку, понаделать #defineов, пол кода выполнить на этапе компиляции. Потом это выложить в сеть дескать Вот зыкайте какой я мля кодер продвинутый |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Все эти и ещё куча других трюков реализуются на ассемблере. Сшник есть средство перейти в усечённое множество трюков с одной целью - попытаться реализовать все (почти всё), что можно сделать на асме. Только немного быстрее. Но на этом, фактически, написана вся индустрия. И тут остаётся только преклонить голову перед разнообразием жизни и признать как данное её самоё. Добавлено через 10 минут и 23 секунды Хотя с переходом к усечённому множество трюков не ахти как "успешно" получается. Тной раз подумаешь, что и ООП весь один большой трюк. Добавлено через 12 минут и 52 секунды Кстати, кто-то из известных штатовцев засел в Microsoft, чтобы привести VC++ к стандарту. Но позавчера читал, что реализовано в VS2013, так шести пунктов (или 7) из стандарта ещё нет. Список щас не приведу. Это сообщение отредактировал(а) akizelokro - 7.1.2014, 22:45 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| Ilya83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 5.1.2014 Репутация: нет Всего: нет |
Просто надо создать новый язык с++ А вся новизна в том, чтобы убрать все совместимости с пред. стандартами. Раздражает эта салянка Все, как хотят так и пишут. Вывод строки на экран (например) Кто scanf, кто printf, кто cout, кто............ Может выберете уже что-то одно???!!!
|
|||
|
||||
| disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Гм, каждый выбирает то, что ему больше подходит. Как раз этим C++ и приятен, помимо прочего - богатством выбора. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |