metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-17 01:33 pm

Крестики же.

Вот жеж страуструпъ намутил, блин.
const/не-const
указатель/ссылка/значение
куча/стек

[identity profile] metaclass.livejournal.com 2012-06-17 11:27 am (UTC)(link)
Это ANSI C ассемблер. А С++ это анальный ад и перл.

[identity profile] nicka-startcev.livejournal.com 2012-06-17 11:46 am (UTC)(link)
С - это ассемблер
с++ - это макроассемблер.
то есть, С++ - это С, но с небольшими улучшайзингами типа чуть лучшей проверки типов и перегрузки всего, что шевелится.

хотя, какой-нибудь FILE* к HANDLE* или к обычному указателю молча приводится и там и там. Буль и энум к интам вроде бы тоже.

[identity profile] yantayga.livejournal.com 2012-06-17 12:00 pm (UTC)(link)
Вот тебя [livejournal.com profile] udpn не слышал...

[identity profile] nicka-startcev.livejournal.com 2012-06-17 12:07 pm (UTC)(link)
не слышал, и что?

[identity profile] yantayga.livejournal.com 2012-06-17 12:13 pm (UTC)(link)
Why so serious? Вероятно, он бы рассвирипел... :)

[identity profile] gds.livejournal.com 2012-06-17 01:20 pm (UTC)(link)
он не глупый, он агду ковыряет. Плюсы просто унаследовались из прошлого.

[identity profile] yantayga.livejournal.com 2012-06-17 01:31 pm (UTC)(link)
Он не глупый. Но плюсы любит :)

(no subject)

[identity profile] theiced.livejournal.com - 2012-06-17 14:27 (UTC) - Expand

(no subject)

[identity profile] yantayga.livejournal.com - 2012-06-17 15:16 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-06-17 15:53 (UTC) - Expand

(no subject)

[identity profile] yantayga.livejournal.com - 2012-06-17 19:23 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-06-17 19:26 (UTC) - Expand

(no subject)

[identity profile] yantayga.livejournal.com - 2012-06-17 19:51 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-06-17 21:03 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2012-06-17 12:08 pm (UTC)(link)
Ни разу не молча. Как минимум warning.

[identity profile] nicka-startcev.livejournal.com 2012-06-17 12:22 pm (UTC)(link)
варнинг не вижу. Как получить?

$ cat a.cpp
enum materials
{
  wood,
  steel,
  glass,
  shit
};

int main()
{
  return true;
}

int foo()
{
  return false;
}

int bar (materials a)
{
  return a+1;
}


$ g++ -W -Wall a.cpp 
$

[identity profile] gds.livejournal.com 2012-06-17 01:22 pm (UTC)(link)
В РОТ МНЕ НОГИ, ТЫ СЛОМАЛ ТИПЫ, ДЕМОН!!1111

[identity profile] nivanych.livejournal.com 2012-06-17 02:18 pm (UTC)(link)
Не надо было помещать строчки
$ g++ -W -Wall a.cpp
$
внутрь a.cpp!!

[identity profile] bitfield.livejournal.com 2012-06-17 07:30 pm (UTC)(link)
s/enum/enum class/

$ g++ --std==c++0x

[identity profile] aamonster.livejournal.com 2012-06-17 12:41 pm (UTC)(link)
Это он таким был до Александреску =)

[personal profile] alll 2012-06-17 03:18 pm (UTC)(link)
До Степанова, вообще-то. ;)

[identity profile] aamonster.livejournal.com 2012-06-17 07:10 pm (UTC)(link)
Ну, Степанов всё заметал под ковёр, наружу торчали только интерфейсы вполне внятного вида (не считая сообщений об ошибках).
А Александреску _учит_ людей, как сделать бяку.

(no subject)

[personal profile] alll - 2012-06-17 19:57 (UTC) - Expand

(no subject)

[identity profile] aamonster.livejournal.com - 2012-06-17 20:53 (UTC) - Expand

[identity profile] kkirsanov.livejournal.com 2012-06-17 12:43 pm (UTC)(link)
--Буль и энум к интам вроде бы тоже.

Енам, если память не изменяет, это и есть инты, просто замаскированные.

[identity profile] nicka-startcev.livejournal.com 2012-06-17 01:29 pm (UTC)(link)
да. но замаскированы недостаточно хорошо.
по уму, надо бы на любой неявны кастинг варнинговать, чтоб неповадно было.

[identity profile] fkng-stupid-lj.livejournal.com 2012-06-20 02:51 pm (UTC)(link)
g++ предупреждает, если сравнивать разные enum или, например, передавать функции один вместо другого.

[identity profile] nivanych.livejournal.com 2012-06-17 02:22 pm (UTC)(link)
Правильный макроассемблер, это форт.

[identity profile] nicka-startcev.livejournal.com 2012-06-17 02:27 pm (UTC)(link)
нотация, польский, вычислить на стеке, язык.
макроассемблер, ненене это!
Edited 2012-06-17 14:27 (UTC)

[identity profile] nivanych.livejournal.com 2012-06-17 02:53 pm (UTC)(link)
Да ну, ерунда какая.

(no subject)

[identity profile] yantayga.livejournal.com - 2012-06-17 19:12 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-06-18 04:35 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-06-18 09:36 (UTC) - Expand

[identity profile] thesz.livejournal.com 2012-06-17 03:53 pm (UTC)(link)
Правильный макроассемблер
Конечно же Форт
Любой микроконтроллер
Его сразу поймёт

Дальше меня не хватает. ;)

[identity profile] nicka-startcev.livejournal.com 2012-06-17 05:56 pm (UTC)(link)
Правильный макроассемблер
Конечно же Форт
Любой микроконтроллер
Его сразу поймёт
Дальше меня не хватает,
Но, кому надо,
И так всё поймёт.

(no subject)

[identity profile] nivanych.livejournal.com - 2012-06-18 04:35 (UTC) - Expand

[identity profile] nivanych.livejournal.com 2012-06-18 04:39 am (UTC)(link)
Ну вот там Никита упомянул
http://metaclass.livejournal.com/701072.html?thread=12798864#t12798864
про неудобства с функциями со стопицот параметров, у которых 2/3 NULL.
Естественно, что первое, что приходит в голову, что макроассемблер должен быть типизированный.
Ну и так далее ;-)

(no subject)

[identity profile] thesz.livejournal.com - 2012-06-18 10:33 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-06-18 10:34 (UTC) - Expand

[identity profile] gds.livejournal.com 2012-06-17 01:20 pm (UTC)(link)
(побояню) Для некоторых применений ANSI C хуже ассемблера!