HLFX.Ru Forum Страницы (4): « 1 2 [3] 4 »
Показать все 53 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Грамотность кода (https://hlfx.ru/forum/showthread.php?threadid=5351)


Отправлено XaeroX 13-09-2019 в 17:58:

Цитата:
Дядя Миша писал:
да и где гарантия что везде это одинаково будет?

Ну привет... В пункте 5.2.1 стандарта языка С++.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-09-2019 в 17:59:

XaeroX ага, все компиляторы на 100% соответствуют стандартам?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-09-2019 в 18:03:

Цитата:
Дядя Миша писал:
А если я допустим [] перегружу?

Ты его никак не перегрузишь для integral expression, поэтому тут без вариантов.

Добавлено 14-09-2019 в 01:03:

Цитата:
Дядя Миша писал:
ага, все компиляторы на 100% соответствуют стандартам?

Не все, но ты всегда можешь заслать донат багрепорт

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-09-2019 в 18:03:

Если уж рассуждать за всякое. Меня вот например такие вещи прикалывают

C++ Source Code:
tw->openLeafNumbers[ tw->numOpenLeafs ] = node & ~(3 << 30);

Конечно так делать не следует, но оцените полёт мысли.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-09-2019 в 18:10:

Цитата:
Дядя Миша писал:
Конечно так делать не следует, но оцените полёт мысли.

Обнуляем два старших бита, всё ок.

__________________

xaerox on Vivino


Отправлено nemyax 13-09-2019 в 19:39:

Цитата:
Дядя Миша писал:
Конечно так делать не следует

А как следует-то? Так экономично.


Отправлено Дядя Миша 13-09-2019 в 20:09:

минус явным образом убирать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 13-09-2019 в 23:18:

Цитата:
2[i] + 4[i]

Такое стоит пожалуй заносить в палату мер и весов идиотского синтаксиса. Давно знал, что стандарт разрабатывали люди с сексуальными девиациями, но чтоб настолько...
Цитата:
node & ~(3 << 30);

writeonly

//Вспомнился замечательный сайт https://cdecl.org/, что какбе намекает.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Дядя Миша 14-09-2019 в 07:25:

Цитата:
thambs писал:
Давно знал, что стандарт разрабатывали люди с сексуальными девиациями

Компилятор весьма вольно трактует некоторые вещи. Ему всё равно, вообщем-то.
Что навскидку вспомнил: модификаторы можно писать подряд несколько раз, например const const и это тоже соберётся.
Или const char *const foo.
Причём в первом случае будет варнинг, а во втором нет.

Добавлено 14-09-2019 в 10:10:

А всё потому что модификатор допускается объявлять как до типа, так и после.

Добавлено 14-09-2019 в 10:20:

И вот еще замечательный пример
C++ Source Code:
1
class foo
2
{
3
  my_class  *base;
4
  void Init( const my_class *base )
5
  {
6
    base = base;
7
  }
8
};

член класса останется непроинициализированным. Никаких варнингов не будет выдано.

Добавлено 14-09-2019 в 10:25:

Пример из p2csg
C++ Source Code:
static void EntityApplyTransform( mapent_t *src, mapent_t *dst, bool brushentity, bool external_map, vec_t yaw_offset = 0.0 )

Вызов
C++ Source Code:
EntityApplyTransform( mapent, mapent, true, false -90.0 );

Пропустил запятую. Никаких предупреждений.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 14-09-2019 в 09:52:

Цитата:
Дядя Миша писал:
Никаких предупреждений.

Тут ведь разрешённое автоматическое приведение получилось. Статический анализатор может и предупредил бы, а компилятору-то что.


Отправлено XaeroX 14-09-2019 в 12:03:

Цитата:
nemyax писал:
а компилятору-то что.

Ну так-то не каждый день из булеанов вычитают флоаты.

__________________

xaerox on Vivino


Отправлено thambs 14-09-2019 в 12:06:

nemyax
Неявное приведение от более общего типа к менее общему — это прямо таки какая-то синтаксическая феерия.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено XaeroX 14-09-2019 в 12:53:

thambs
Тут не совсем оно. Скорее, интересные особенности неявного приведения булевого типа.

__________________

xaerox on Vivino


Отправлено thambs 14-09-2019 в 13:08:

XaeroX
Так ведь два раза же, не? bool -> int -> bool, первое при вычитании, корректная операция, приводим тип выше по иерархии абстракций; а вот дальше получается, что "теряем точность" (в кавычках). ЕМНИП, а там разве нет флага компилятору что бы такое неявное приведение сверху-вниз запретить?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Дядя Миша 14-09-2019 в 14:34:

в крестах false это не макрос, а встроенное слово языка.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 16:41. Страницы (4): « 1 2 [3] 4 »
Показать все 53 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024