Pull to refresh
0
@MacInread⁠-⁠only

User

5
Subscribers
Send message
Замечательно! Спасибо. Давно пора изучить Qt.
Насколько я понимаю, Qt работает через макросы и препроцессор?
setProperty может выставить произвольный property в произвольном объекте?
Для этого достаточно каждый виджет наследовать от специального миксина вроде

Как это поможет, например, во время рантайма получить доступ к произвольным полям, которые есть в данном объекте, конкретного класса? Универсальным способом.
Например — у нас есть, скажем, какой-то экран, форма в некоей нестандартной системе (я описываю реальный случай, но там работа с Delphi производилась, не с С++, но сама ситуация — языконезависима). Виджеты-объекты хранятся в виде списка для этого экрана, соответственно, тип объекта — виджет, а уж кнопка это или editbox какой — науке неизвестно. Теперь мы хотим это все упаковать и перекинуть по сети, а на том конце точь в точь так же развернуть. Итерируем по виджетам, для каждого делаем serialize. Тип неизвестен — он на ходу определяется, для каждого окна свой набор элементов управления.
Хм… если у нас есть дочерние классы, то сериалайзер должен работать с родительским — с наиболее общим знаменателем так сказать. Соответственно, если у нас есть класс A, и дочерний B, то сериалайзеру подается cast B в A, т.е. о типе реального B он не знает. Нет?
Для того, чтобы делать все одним и тем же кодом, которому на вход подается объект и строка/буфер. Чтобы не писать и не тащить с собой сериалайзер для каждого типа отдельно.
Не только — навскидку — простые serialize unserialize объектов.
Ну, в таком случае вам и не потребуется сведения о типе в рантайме. Но в случае, когда объекты размещаются и передаются не пачкой, это может быть полезным. Здесь 1 указатель — не такая дикая расплата.
push ebp
pop ebp
ret
Готово!
Если говорить о скорости, то да, это проблема. С другой стороны, 6 байт фрагментиурет heap.
Почему бы не размещать паразитные указатели по отрицательному смещению, без выравнивания? Так у вас и объект в кеш влезет и операция доступа к TI будет хоть медленной, но доступной.
На GOTO сильно "погнал" Дейкстра, со слабой аргументацией (по крайне мере, поначалу). Его неплохо затролил Кнут, выпустив статью "структурное программирование с использованием goto".
N байт на имени класса — это много, когда у вас класс занимает 6 байт и упакова

А зачем хранить имя класса вместе с объектом (ведь 6 байт — это про instance, нет?)
Если вам нужны доморощеные эксперты по языками — писали бы на паскале или обероне

Воу-воу, палехчи. Паскаль-то чем не угодил?
"на сколько тяжело" как "язык располагает к плохому коду" или "насколько язык мешает писать плохой код"? Плюсы не мешают писать плохой код: хочешь выстрелить в ногу — пожалуйста. Но и не располагают к этому.
Сколько людей — столько и мнений; всегда найдутся те, кто не любят, когда их язык ограничивает так или иначе.
Вот, кстати, двухцветки:
https://www.etsy.com/listing/118112526/universal-typewriter-ribbon?ref=related-0
Хорошая идея. Насколько я понимаю, срабатывает при удалении фиктивного объекта, когда тот выходит из зоны видимости?
finally может быть вложенным, перемешанным с catch, иметь после себя код, который выполняется только в случае отсутствия исключений, но после finally.
Просто весь аргумент Торвальдса (который скажем, достаточно эпатажен, ну да бог с ним) сводится к "С++ — плохой, потому что на нем говнокодеры могут писать говнокод". Покажите мне язык, на котором невозможно написать говнокод и я вам покажу пример, как это сделать.
Видимо, имелась в виду копия прототипа. Но двузначность фразы на уровне.
Слава ThinkPad ам!
«Менять ленту нужно было часто, так как краска на ней долго не держалась, бумага пробивалось до дыр.»
Одна и та же лента запросто по пять раз прогоняется туда и обратно, потом устанавливается «вторым этажом» и по новой. Потом третьим и так до посинения. Переключается колесиком, если нормальная машинка. До дыр бумагу пробивет чаще всего «о».

«Нужно было уметь поменять саму ленту, чтобы она заняла правильное положение и не выскакивала в процессе работы.»
Это просто нереальной сложности задача, непосильная для среднего человека: Снять с оси катушку, поставить новую и продеть ленту через лапки, которые сбоку напоминают С. Часа 3, если под пиво.

Почему-то не написали про цветные ленты. Но самой ятрани (хорошая машинка — была такая) есть переключатель цвета печати в виде колесика. В зависимости от его положения, лента при нажатии литеры поднимается на разную высоту, и были специальные ленты — например, двухцветные — верхняя половина черная, нижняя — красная. Или другие сочетания.

Еще на Ятрани есть специальное приспособление для печати таблиц: сзади ряд флажков, которые активируют звонок. По одному флажку на знакоместо. Выставляются флажки, соответствующие разделителям. При печати, после того как вписано значение, жмется пробел до звонка и ставится разделитель. Плюс автоподача до следующего флажка на механике.

Information

Rating
Does not participate
Registered
Activity