- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 
                        ㅌㄹ ㄱㅌ		; Помещаем в BX текущее значение регистра ES	<───────┐
ㅈㅿ		; Загружаем младший байт регистра флагов в AH		│
		;							│
ㅊㅋ		; В пару ES:DI кладем то, что сейчас находится в AX	│
		;							|
ㄹㅅ		; Дважды увеличиваем значение регистра DI		|
ㄹㅅ		; на одну единицу					|
		;							│
ㅎㅋ ㅿㅈ		; Образуем бесконечный цикл			>───────┘
                                 
        
            Господа, ОНО вернулось. Следующая итерация всеми нами любимого и восхваляемого [имя, которое нель̸̗̠̘̘̪̳̩зя произносить]. Я б̞̫͔̜ы на вашем ме̤̣̺͇̫с̨͈те покинул стр̵а̻̘̪̙͎̳̕н̬̙̤̙̪̝̺͠ицу. С̫е̜й̱͎ч̦̦̝͔а̙͓͓с̛̩̞̘ ̫̹͙̲̤̖͉ж̶͉̻е҉̼̦.
        
        
да.
> Почему компилятор не ругается?
Потому что проблема останова не разрешима. А вдруг c_str() иногда возвращает nullptr или статическую пустую строку, тогда никакого UB не будет.
В дебаге или в релизе?
Теперь ты спокоен?
У тебя неправильный посыл.
Вся суть сишки и плюсцов в том, что компилятор имеет полное право считать, что НИКАКОГО UB В ПРОГРАММЕ НЕТ. Программист — царь, он сделал всё правильно, и исходя из этого компилятор может делать кучу оптимизаций. Поэтому когда компилятор видит твою строчку, он думает не "опа, УБ!", а "опа, господин позаботился о том, что в этом выражении нет УБ, как мне это оптимизнуть?".
Ладно, статическая строка (даже непустая) - это понятно.
А вот nullptr - это реальность c_str или обобщение случая до произвольной функции?
Или у std::string в области значений есть не только "", но и NULL?
Должен вернуть то же самое. По крайней мере, явно инициализируется пустой строкой, а не нулевым указателем.
Кстати, не сразу заметил, что там "_", поначалу думал, что "e" в "gray".
В это можно только уверовать. А те, кто верит, что я не чья-то файка, об этом не спрашивают, им и доказательств не нужно.
> Почему компилятор не ругается
Он не знает что вернул c_str(). Может быть там копия strdup'нутая и всё ок...
А почему так?
c_str специально реализован так, чтобы у std::string с небольшой вероятностью вызывался strdup и текла память?
Или оптимизатор после всех преобразований уже код c_str очень слабо видит и не помнит, что там за функция была?
Ну а строка - это же шаблонная питушня -- более открытая, чем другое.
В общем, печально, что не знает.
> даже апкейсу нельзя доверять
После слова ДАЖЕ идёт более сложная задача. В случае с валютами ведь нет проблем с кодировками, хуё-моё. Расставил пробелы и точку или запятую и всё. Апкейст-то похардовее будет.