Pull to refresh
65
0
Илья Поздняков@iliazeus

Пользователь

Send message
«Edg», как в юзерагенте.
blogs.windows.com/msedgedev/2019/04/08/microsoft-edge-preview-channel-details
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24

Синтаксис, кстати, не то чтобы новый: это продолжение синтаксиса атрибутов, поэтому поломаться ничего не должно. А чтобы не замедлять компиляцию, можно выставить соответствующий build-level.

Implementation-defined. Где-то можно, где-то нельзя.
https://en.cppreference.com/w/c/language/identifier


An identifier is an arbitrarily long sequence of digits, underscores, lowercase and uppercase Latin letters, and Unicode characters specified using \u and \U escape notation (since C99).
(...)
It is implementation-defined if raw (not escaped) Unicode characters are allowed in identifiers

В GCC, например, можно.

Во-первых, с точки зрения организации кода, в заголовочных файлах обычно определяется только интерфейс какого-то модуля программы — объявления типов и функций, документирующие комментарии и т.д. Детали реализации помещают в файлы .c

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

Про интерпретаторы байткода на Хабре недавно был очень хороший пост. Мне кажется, он будет вам интересен, в том числе как пример хорошей обучающей статьи на данную тему.


А код плохой, да. Удручают, например, определения функций в заголовочных файлах, или каскады else if вместо одного switch.

Сейчас, вроде, все.
Только этот случай покрывается уже существующими оптимизациями (инлайнинг конструктора базового класса + удаление лишнего присвоения + удаление «мертвого» кода конструктора базового класса).
godbolt.org/z/HxCGjt
Спасибо, теперь все понятно.
Но ведь в Turbo Pascal 5.5 инициализация vptr — тоже задача конструктора; значит, конструктор предка, вызванный конструктором потомка, все равно будет ее выполнять, разве нет? Все равно получаются «напрасные» присваивания.
Добавим методу main атрибут [STAThread]
Зачем?

А действительно, зачем? Из приведенной ссылки это не слишком понятно.

Если мы теперь вызовем на окне метод Show(), оно тут же схлопнется, а так как нам бы хотелось на него смотреть все время, то это окно нужно запихнуть в контейнер, который поддерживает весь жизненный цикл.

Почему вам не подошел Window.ShowDialog()?
12 ...
14

Information

Rating
Does not participate
Location
Казахстан
Registered
Activity