Гримуар C++

Nov 29, 2013 19:14

или N вещей, которые вы могли не видеть в C++ коде
или Как запугать жуниораВ коде на C++ можно увидеть много компиляторо-специфичных или просто редко встречающихся в учебниках штук, смысл которых туманен, а как их гуглить, иногда бывает неясно. К примеру, когда я, будучи еще школьником, переходил с бейсика на C++ и стремительно овладевал непростым ( Read more... )

программирование

Leave a comment

Comments 44

v_l_a_d November 29 2013, 18:01:36 UTC
хочу теперь это всё быстренько развидеть(

Reply

udpn November 29 2013, 19:59:30 UTC
Так автор ещё пожалел читателей, моменты вроде функций-суррогатов или получения списков всех шаблонных классов-предков с int-аргументом или указателем не раскрыты.

Reply


the__listener November 29 2013, 18:39:55 UTC
Круто! Спасибо, многих вещей я не знал.

Плюсового примера сейчас не приведу, а в джаваскипте я очень люблю пугать народ конструкциями вида:

switch (true) {
case 'object' === typeof (l):
....
break;
case parseInt(l) > 100:
....
break;
case /^[0-9]/.test(l):
....
break;
}

Reply


baramin November 29 2013, 19:01:28 UTC
Оч. полезно! Спасибо!
Тривиальное забыли (или я пропустил) - о равносильности конструкций a[4] и 4[a]

Reply

baramin November 29 2013, 19:03:14 UTC
Ну и перегрузка операторов ++i и i++ через ни-пришей-int.

Reply

baramin November 29 2013, 19:04:26 UTC
Надо поворошить Exeception-dump'ы. Там такие чудеса...

Reply

sharpc November 29 2013, 20:36:05 UTC
Была мысль добавить, но ведь это во всех азбуках пишут.

Reply


diam_2003 November 29 2013, 19:26:15 UTC
> Поддерживается и GCC, и VC++. Если нет разницы, зачем писать больше?

Затем, что в мире кровавого эмбеддеда есть не только GCC и VC++, например.

> А какие плюсострашилки знаете вы?

Ну, например, такое:

template struct magic {
typedef int a;
};

template <> struct magic {
enum { a = 1; };
};

int x(magic::a);

Reply


bik_top November 29 2013, 20:26:00 UTC
> Это C++.NET.

Есть C++/CLI, C++/CX и когда-то давно был Managed C++. Что такое C++.NET?

Reply

sharpc November 29 2013, 20:35:33 UTC
Это затуманивание.

Reply

bik_top November 29 2013, 20:44:11 UTC
Вообще да, но в данный момент нет. Т.е. понятно, что всё перечисленное не те языки, из-за которых стоит хоть полминуты спорить. Но тем не менее, они разные.

Managed C++ и C++/CLI имеют разный синтаксис, но оба компилируются на CLR. С++/CX имеет синтаксис схожий с C++/CLI (оба разрабатывались Саттером), но компилируется в машинный код.

Reply

sharpc November 30 2013, 05:13:58 UTC
Я знаю про них, но длина примера позволяет только тренировку очень грубого классификатора кода на C++ и его модификации для технологий MS. С одной стороны, ^-ссылки есть в обоих языках, с другой gcnew в C++/RX, конечно, нет.

Reply


Leave a comment

Up