Войти
ФлеймФорумПрограммирование

Имеет ли смысл вводить следующие изменения в С? (13 стр)

Страницы: 18 9 10 11 12 13
#180
20:13, 9 мая 2019

1 frag / 2 deaths
> Если сам пишешь ллвм, то есть. И это дикая хрень.
Там нет поддержки чего-то типа макросов?

> Ну хз, как линух такое передаёт?
Как раз, как ты хочешь: просто скидывает структуру на стек, только предварительно выравнивает его на 32 байта.
А под виндами передает адрес в rcx.


#181
21:05, 9 мая 2019

}:+()___ [Smile]
> Как раз, как ты хочешь
Ну значит чего нельзя так у всех делать?

}:+()___ [Smile]
> А под виндами передает адрес в rcx.
Ну это большой нежданчик, например.

}:+()___ [Smile]
> Там нет поддержки чего-то типа макросов?
Каких макросов? Не, можно ручками проверять, что мы компилим именно под 64-битную винду, но это пипец же полный.

#182
21:47, 9 мая 2019

1 frag / 2 deaths
> Ну значит чего нельзя так у всех делать?
Чего ты хочешь от Micro$oft-ов?

Они уже лет 20 не могут запилить нормальную поддержку юникода.

> Не, можно ручками проверять, что мы компилим именно под 64-битную винду, но это пипец же полный.
Если ты пишешь на чем-то ассемблероподобном, то да, изволь придерживаться соответствующих правил.
Хотя, конечно, странно, что в LLVM не запилили это автоматически, остальное то они осилили.

#183
21:49, 9 мая 2019

}:+()___ [Smile]
> Чего ты хочешь от Micro$oft-ов?
Соответствия заказанной сигнатуры и реальной у сишки.

}:+()___ [Smile]
> Если ты пишешь на чем-то ассемблероподобном, то да, изволь придерживаться
> соответствующих правил.
Да, я бы это понял, если б импортировал функцию из жабы. Но это сишка, блин, сииишка!

#184
11:37, 10 мая 2019

1 frag / 2 deaths
Ну уже вроде разобрались что это не сишка протухла, а винда говно.

#185
20:39, 10 мая 2019

Bakuard
> Ниже я написал список того, что мне хотелось бы видеть в С для
> полного счастья
А писать на C++ религия не позволяет?

#186
10:57, 11 мая 2019

Aslan, ну в С++ это конечно все есть (за исключением пунктов 6 и тем более 7). Просто в С++ помимо перечисленных мной возможностей есть ещё куча, скажем так, сомнительных решений и костылей (чего только стоит  21 способ инициализации экземпляров классов и структур). Хотя мне уже объяснили что введение этих дополнений во первых убьет обратную совместимость в С, а во вторых идеологически противоречит принципам самого языка. Так что мой первый вопрос лучше было бы оформить так: что стоит оставить в С++?(а все что не попало в список - выкинуть нафиг).

#187
11:17, 11 мая 2019

Bakuard
> Так что мой первый вопрос лучше было бы оформить так: что стоит оставить в С++?
Я знаю три способа использования ООП.

1. Быдлокодерский. Тут все очевидно. Часто все "программирование" сводится к вызовам мощной ОО-библиотеки, которые наскоро и по потребности связываются не-ОО-логикой. Этот способ дружно порицается "неговнокодерами", которые очень любят ОО-логику. Но, с другой стороны, с каждой новой версией, С++ все более приспосабливается для этого способа - не только для каждого отдельного заскока программерской мысли появляется фича, позволяющая реализовать ее "не вникая", но и количество этих фич приводит к единственному разумному способу их освоения - копипасте на основании слуха о полезности.

2. Классический. Для которого С++ и предназначался изначально - программирования путем построения ОО-модели вселенной и проблемно-ориентированного языка для высокоуровневого управления этой моделью. Это никогда не работало, окромя учебных моделей. Слишком уж код C++ получается неуправляемым...

3. Как у всех. Любимый "неговнокодерский", он же "крестопроблемный". Игра в кубики в попытке собрать самый правильный конструктор. Вероятность написания чего-то работающего (кроме переписывания уже кем-то написанного ранее) - минимальна. Сколько бы C++ не гнался за потребностью этих любителей полиморфизмов, все равно, они всегда будут недовольны...

Так что, тут нужен не один язык, а три...

#188
13:40, 11 мая 2019

qudleifr если я правильно понимаю - изначальной целью С++, вроде как, было добавление модульность в С через ООП, но при этом не принуждать программситов использовать это самое ООП (иначе не стали бы сохранять совместимость с С). На мой взгляд для этих целей было достаточно ввести пространство имен + наследование структур(для любителей полиморфизма) и можно было бы писать полностью в ОО стиле. И не надо будет придумывать три языка)

#189
14:08, 11 мая 2019

Bakuard
> первый вопрос лучше было бы оформить так: что стоит оставить в С++?(а все что
> не попало в список - выкинуть нафиг).
Попробуй посмотри на Objective-C

#190
14:42, 11 мая 2019

Bakuard
> если я правильно понимаю - изначальной целью С++, вроде как, было добавление модульность в С через ООП
Нет. Попробуйте почитать главы 11-13 второго издания Страуструпа (первое - сырое, третье - уже мусор).

Страницы: 18 9 10 11 12 13
ФлеймФорумПрограммирование