LINUX.ORG.RU
Ответ на: комментарий от paramon

эт для примера же. Ты еще до «Hello world» докопайся :)

slackwarrior ★★★★★
() автор топика

trailing return type помогает видеть какой именно тип возвращает функция

[[nodiscard]] constexpr 
auto fun (int const /*argc*/, char const* /*argv*/[]) 
noexcept 
-> int { // возвращаемый тип всегда в конце, рядом со стрелочкой
  return 0;
}
[[nodiscard]] constexpr 
int fun (int const /*argc*/, char const* /*argv*/[]) 
noexcept { // возвращаемый тип в середине, нужно искать :(
  return 0;
}

или конкретно про main вопрос?

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

В том числе :) В шаблонах идешечек по-прежнему посконный

int main(int argc, char** argv) {
   return 0;
}
Хотя цомпилер уже не спрашивает «чо такое []()->int{ return 0; }»

Вот и думаю, наскока широка эта шизопрактика :) Хошь лямбды искаропки, нннно... мейн как диды.

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

Хотя цомпилер уже не спрашивает «чо такое ->int{ return 0; }»

Ещё + иногда перед лямбдой пишут:

+[]()->int{ return 0; }
fsb4000 ★★★★★
()
Ответ на: комментарий от Harald

Он компилируется. Иногда. Правда, только на gcc. А вообще всё отлично гуглится, если под рукой нет компа.

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

Один тут тоже все конторы палил, цыц всем говорил :) А потом приняли его с закладкой, улавливаешь :)

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

Да это тоже прекрасно, конечно :) Хотя большинству конечно было и раньше норм («авто же!») — а потом наверное опять сделают «ну нахер... ну ты видел, видел?».

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

Вообще, если серьезно, то современные плюсы вводят меня в уныние. Прям уже хочется сделать что-нибудь типа asm.js только для плюсов. Так что-бы только минимальный набор фич и ограничить синтаксис по максимуму. И что-бы всё это в обычный код на C++ транслировалось. А то так смотришь иной проект и плакать хочется от кода уже больше напоминающего какой-то брейнфак.

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

фух, погуглил, всего лишь конпелятор роняет, я думал, в новых стандартах теперь функцию main() так допустимо объявлять :D

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

У меня вот вполне комрилируется. Причём даже уже не занимает по много гигов ОЗУ и свопа. Где-то за пару минут справляется. Более новый GCC неплохо оптимизировали, похоже. Всё-таки этому приколу уже несколько лет.

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

Что-то такое припоминаю, но конкретный профиль этого лоровца уже забыл.

«Кузьмич, это ж байка» (с) Это я тебя на понт брал :) про «улавливаешь» — это троленг по мотивам Стругацких (гугл «улавливаешь»), а история «дерзкий ИТ-шник с закладкой» — вообще шаблон. Местами жизненный конечно — навроде этого. Но если еще и лоровец такой был — то теперь я тоже хочу вспомнить... но это не точно (из «туподерзких» — на ум приходит разве какой-нибудь клон царя, хотя... покопать — в толксах «по скромным оценкам» известная химическая реакция у почти всех в мозгу происходит)

slackwarrior ★★★★★
() автор топика
Последнее исправление: slackwarrior (всего исправлений: 3)
Ответ на: комментарий от DawnCaster

Прям уже хочется сделать что-нибудь типа asm.js только для плюсов. Так что-бы только минимальный набор фич и ограничить синтаксис по максимуму. И что-бы всё это в обычный код на C++ транслировалось

nim что ле? :)

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

Так. На домашнем компе доступна сейчас 7.4.0. Но оно уже не собирает полностью - вылетает линкер после секунд так 10 и сожрав 16 гигов ОЗУ. Но если собирать в объектник, то вообще считанные секунды занимает процесс на tmpfs. На рабочем сейчас проверить не могу, увы, но там всё тоже не более чем за пару минут справлялось

Вот что у меня сейчас получается:

sandboxer@kompluktor:/tmp/oops$ echo "main[-1u]={1};" > oops.c
sandboxer@kompluktor:/tmp/oops$ df /tmp
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs           32893796     4  32893792   1% /tmp
sandboxer@kompluktor:/tmp/oops$ time gcc -mcmodel=medium -O -c oops.c
oops.c:1:1: warning: data definition has no type or storage class
 main[-1u]={1};
 ^~~~
oops.c:1:1: warning: type defaults to ‘int’ in declaration of ‘main’ [-Wimplicit-int]

real    0m5,979s
user    0m2,532s
sys     0m3,445s
sandboxer@kompluktor:/tmp/oops$ ls -l
total 16777224
-rw-rw-r-- 1 sandboxer sandboxer          15 ноя  1 00:14 oops.c
-rw-rw-r-- 1 sandboxer sandboxer 17179870240 ноя  1 00:15 oops.o
sandboxer@kompluktor:/tmp/oops$ 
DawnCaster ★★
()
Последнее исправление: DawnCaster (всего исправлений: 3)
Ответ на: комментарий от slackwarrior

Не знаю даже. Слышал о нём несколько раз, но как-то попробовать его так и не пришлось. Пока что, когда надо что-то писать на C++ я просто стараюсь не уходить в дебри вроде приведённых выше, и просто пишу максимально читабельный код.

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

Я вот тоже что-то забыл уже. Вроде и была история когда-то а может и нет ( Эх, ЛОР вообще становится унылый. Или это мы стареем…

Историю с Литреевым помню. Не понимаю что у этих чуваков в голове, это совсем какая-то другая категория мышления, походу. А ведь тоже айтишник.

DawnCaster ★★
()

C++ — такой C++. Еще более монструозный и еще более совместимый. Теперь такое ощущение, будто в нем как минимум три языка сшиты вместе. Я честно не понимаю людей, которые этим пользуются. С другой стороны, некоторые люди пишут на хаскеле, и ничо, нормально. Тут главное пару месяцев потрениться по языку, и тогда hello world-ы будут отскакивать от зубов.

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

Теперь можно тип в конце указать, какой ужас... Человечество не переживет

Нет, проблема не в этом. А в том, что можно в начале, можно в конце, можно не указывать, а можно вообще забыть поставить точку с запятой и вычитывать тысячи ошибок от компилятора. И так парсерам было туго, а тут еще прибавилось.

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

А в том, что можно в начале, можно в конце, можно не указывать

Так это же хорошо, вариантов не так много, и все они ясны.

И так парсерам было туго, а тут еще прибавилось.

Как будто бы тебе их писать нужно.

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

Так это же хорошо, вариантов не так много, и все они ясны

Это просто один сраный тип возвращаемого значения. То есть, одна тысячная от языка. Со всем остальным языком что прикажешь делать? Обычно за «кресты не так сложны» топят те, кто его тупо не осилил, а пользуется лишь подмножеством. Те же, кто осилил, говорят «сложно, но не мешает».

Как будто бы тебе их писать нужно

Мне ими пользоваться нужно, а они парсят целую вечность.

byko3y ★★★★
()

Народ объясните мне пожалуйста зачем ставить auto когда дальше идет определение возвращаемого типа int ?

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

Народ объясните мне пожалуйста зачем ставить auto когда дальше идет определение возвращаемого типа int ?

Для того, чтобы этот самый тип задействовался. Это костыль, workaround, слой совместимости с совместимостью с синтаксисом Си.

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

Так это же хорошо, вариантов не так много, и все они ясны.

У нормальных людей «не так много» должно быть строго равно единице. А всё что больше единицы – называется бардак.

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

Используй только один вариант в своём проекте. Кто мешает. Можешь даже проверять какими-нибудь линтерами…

В С++ полностью свобода.

Можешь использовать самый подходящий вариант в зависимости от ситуации.

Можешь использовать только один вариант для всех ситуаций. Скорее всего адепты этого пути и смутили ОПа, что он аж создал тему на лоре…

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

кресты не так сложны

Да не, они недостаточно сложны, где нормальное метапрограммирование с рефлексией, а?

Мне ими пользоваться нужно, а они парсят целую вечность.

Ну тут препроцессор еще влияет...

paramon
()
Последнее исправление: paramon (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

Скажите пажалста, а в чём цимес превращать процедурный язык с элементами ООП в набор перол-однострочников с мета-регулярками????

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

Если return в main нету то идет автоматический return 0

Эта фича абсолютно бесполезна в любых мало-мальски полезных программах. Экономия в одну строчку? Чтобы в редкие моменты, когда заглядываешь в код main() внезапно заметить отсутствие return, и буквально сразу вспоминать, что так можно, потому что это main()?

Эдакий детектор «царей си-плюс-плюшки».

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

Дык была хорошая идея человек пишет, компилятор подсказывает, а сейчас какая идея, чтобы два те которые мосье узнали друг друга? Не ну ладно майн, не каждый день, на одном экране. Но так понимаю дело этим не ограничится. Зы. Чего вспоминаю, не наслаждаюсь.

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