LINUX.ORG.RU
ФорумTalks

C++ - некошерно, C - кошерно. Почему?


0

0

Решил тут поднять свой левел знания С/С++ дальше понимания синтаксиса и пр., т.к. с Pascal'ем в моем городе дальше хобби не "уехать" по всей видимости :) Ну и собственно начал практиковаться, переводя один свой проЭкт на С. Почему-то расстроило отсутствие аргументов по умолчанию, с трудом привык к работе со строками и пляскам вокруг ручного контролирования выделения под них памяти и т.д. Свыкся с разбивкой модулей на *.c/*.h(даже проникся)... в общем ладно, отошел от темы немного ) Хотел поинтересоваться, какие реальные аргументы на тему "С++ - УГ" можно привести? :) И будет ли извратом/некошерно использовать C++ не прибегая к использованию классов/STL/etc.?

ЗЫ: давно подобных тредов не было, лень искать старые.

★★★★
Ответ на: комментарий от Absurd

>Ну какбе темплейты грубо говоря предназанчены для копипасты кода, также как и макросы. Напрашивается вывод что они призваны заменить макросы.

Не. Просто в Сях решалось макрами, то что решается параметрическим полиморфизмом. Это не значит, что параметрический полиморфизм нужен как замена макрам.

Вон темплейты в D это скорее макры - ну и соответственно александреску дорвался до своего любимого дела:

template factorial(int n)
{
static if (n == 1)
const factorial = 1;
else
const factorial = n * factorial!(n-1);
}

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

> Ну какбе темплейты грубо говоря предназанчены для копипасты кода,

Грубо говоря, шаблоны предназначены для того, чтобы избежать копипасты _исходного_ кода. Так же, как и процедуры, например. Как тебе такое огрубление?

>>> А с помошью чего можно сгруппировать key и value для помещения в map и multimap?

>> С помощью keyvalue<>

> Это принципиально?

Всего лишь вопрос удобства.

>>Шаблоны не имеют к ООП совсем никакого тоношения, ты не понимаешь этой простой вещи?

> К ООП в понимании Строуструпа - имеют.

Да ты телепат.

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

>> Ну какбе темплейты грубо говоря предназанчены для копипасты кода,

>Грубо говоря, шаблоны предназначены для того, чтобы избежать копипасты _исходного_ кода.

А макросы разве не предназначены для того же?

>>>Шаблоны не имеют к ООП совсем никакого тоношения, ты не понимаешь этой простой вещи?

>> К ООП в понимании Строуструпа - имеют.

>Да ты телепат.

Строуструп приводил STL как доказательство правильности своих изначальных идей.

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

>>> Ну какбе темплейты грубо говоря предназанчены для копипасты кода,

>> Грубо говоря, шаблоны предназначены для того, чтобы избежать копипасты _исходного_ кода.

> А макросы разве не предназначены для того же?

Весь SE для этого предназначен. "Избежать копипасты" - такое огрубление, под которое можно подверстать любые средства абстракции, и разговор теряет смысл.

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

>>> Грубо говоря, шаблоны предназначены для того, чтобы избежать копипасты _исходного_ кода.

>> А макросы разве не предназначены для того же?

>"Избежать копипасты" - такое огрубление, под которое можно подверстать любые средства абстракции, и разговор теряет смысл.

Ну разговор имеет смысл в том что шаблоны были задуманы для того чтобы заменить макросы, и в STL они были применены именно для того для чего они были задуманы, т.е для копипасты классических алгоритмов и структур данных. Никакого изращения первоначальных задач Степанов не сделал.

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

>Ну разговор имеет смысл в том что шаблоны были задуманы для того чтобы заменить макросы

Да с чего ты это взял?

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

>>Ну разговор имеет смысл в том что шаблоны были задуманы для того чтобы заменить макросы

>Да с чего ты это взял?

Попытался проследить ход мыслей человека который разрабатывал бы С++: Строуструп скорее всего попытался написать какой-нибудь LinkedList или DynamicArray и обнаружил что для решения задачи в общем виде он должен написать макрос который подставляет тип элемента коллекции в этот класс. Макрос ему показался грязным решением, и он попытался найти ему какую-то безопасную замену.

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

>Строуструп скорее всего попытался написать какой-нибудь LinkedList или DynamicArray и обнаружил что для решения задачи в общем виде он должен написать макрос который подставляет тип элемента коллекции в этот класс. Макрос ему показался грязным решением, и он попытался найти ему какую-то безопасную замену.

Или он подучил матчасть и появился параметрический полиморфизм.

r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.