программистское (из пустого в порожнее)
Mar. 29th, 2008 05:26 amБудет интересно только программистам, знакомым с C++.
Кроме обычных вещей, которых мне не хватает, когда я пишу на C++ (ну, типа, защитного шлема, чтоб биться головой об стенку было не так больно) мне очень не хватает метода std::string, который был бы точной противоположностью empty(). Потому что писать в двухтысячный раз if (!сепулька.empty()) подзадолбало, если честно. Ведь дело не в том, что этот ! - лишний знак на экране, а в том, что это пусть крохотный, но каждый раз дополнительный логический прыжок в голове.
Любопытно: я, конечно, понимаю, что можно написать if(сепулька.size()) и это будет правильно работать, но что-то мне не позволяет так писать - видимо, ощущение того, что это слишком C-шная идиома. Ну а написать if(сепулька.size() > 0) - это уже выйдет лекарство хуже болезни.
Нет, хочется именно метода, возвращающего bool и в точности обратного empty(). Но вот незадача - размышляя об этом, я осознал, что не понимаю даже, как он должен называться. Не назвать же его, в самом деле, full(). Понятно, что nonempty() - это опять-таки схоластика. А что тогда? Кажется, тут не только в стандарте C++, тут в языке налицо определенная дырка.
Кроме обычных вещей, которых мне не хватает, когда я пишу на C++ (ну, типа, защитного шлема, чтоб биться головой об стенку было не так больно) мне очень не хватает метода std::string, который был бы точной противоположностью empty(). Потому что писать в двухтысячный раз if (!сепулька.empty()) подзадолбало, если честно. Ведь дело не в том, что этот ! - лишний знак на экране, а в том, что это пусть крохотный, но каждый раз дополнительный логический прыжок в голове.
Любопытно: я, конечно, понимаю, что можно написать if(сепулька.size()) и это будет правильно работать, но что-то мне не позволяет так писать - видимо, ощущение того, что это слишком C-шная идиома. Ну а написать if(сепулька.size() > 0) - это уже выйдет лекарство хуже болезни.
Нет, хочется именно метода, возвращающего bool и в точности обратного empty(). Но вот незадача - размышляя об этом, я осознал, что не понимаю даже, как он должен называться. Не назвать же его, в самом деле, full(). Понятно, что nonempty() - это опять-таки схоластика. А что тогда? Кажется, тут не только в стандарте C++, тут в языке налицо определенная дырка.
no subject
Date: 2008-03-29 02:35 am (UTC)taken()
:D
no subject
Date: 2008-03-29 02:41 am (UTC).good()
.kosher()
no subject
Date: 2008-03-29 02:45 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2008-03-29 06:55 pm (UTC) - Expandno subject
Date: 2008-03-29 02:49 am (UTC)no subject
Date: 2008-03-29 03:01 am (UTC)no subject
Date: 2008-03-29 03:01 am (UTC)no subject
Date: 2008-03-29 04:09 am (UTC)(no subject)
From:no subject
Date: 2008-03-29 03:13 am (UTC)sepulka.here()
2)
sepulka.ThereIs()
no subject
Date: 2008-03-29 03:18 am (UTC)no subject
Date: 2008-03-29 03:48 am (UTC)no subject
Date: 2008-03-29 04:01 am (UTC)Я, кстати, всегда стараюсь выносить все эти предикаты в глобальные функции, потому как обилие строковых типов и способов их проверки задалбывает. Проще всегда и везде писать if (empty(str)) { ... } не заботясь о реальном типе строки.
no subject
Date: 2008-03-29 04:13 am (UTC)no subject
Date: 2008-03-29 05:40 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-03-29 04:14 am (UTC)Ну или abissel(). Ой!
You mean
Date: 2008-03-29 05:52 am (UTC)Of course, in C# it becomes Oy().ToString()
Re: You mean
From:Re: You mean
From:no subject
Date: 2008-03-29 04:28 am (UTC)no subject
Date: 2008-03-29 04:38 am (UTC)На стандартные стринги обычно делают обёрточку (чтоб менше об стенку, да), и вот там-то имплементируют IsEmpty(), IsNotEmpty() и кого ещё хотят. Написал такое один раз, и уже гораздо реже хочется повесится :)
I have more
Date: 2008-03-29 05:50 am (UTC)Anything else?
Re: I have more
From:Re: I have more
From:Re: I have more
From:Re: I have more
From:Re: I have more
From:Re: I have more
From:no subject
Date: 2008-03-29 08:01 pm (UTC)no subject
Date: 2008-03-29 05:12 am (UTC)сепулька.foo()
cепулька.bar()
Тогда уж
Date: 2008-03-29 05:53 am (UTC)сепулька.yok()
Re: Тогда уж
From:(no subject)
From:no subject
Date: 2008-03-29 05:40 am (UTC)no subject
Date: 2008-03-29 06:54 am (UTC)no subject
Date: 2008-03-29 08:05 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-03-29 07:11 am (UTC):-)
no subject
Date: 2008-03-29 12:36 pm (UTC)no subject
Date: 2008-03-29 07:55 am (UTC)правильно, но дольше, нет?
а вообще присоединяюсь к оратору выше
каст в bool добавить и будет щасте
no subject
Date: 2008-03-29 09:21 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:А по моему string хорошо продуман
Date: 2008-03-29 07:59 am (UTC)no subject
Date: 2008-03-29 08:05 am (UTC)>А что тогда? Кажется, тут не только в стандарте C++,
>тут в языке налицо определенная дырка.
ээээ. скорее тут определенная дырка с другой стороны экрана:) воспринимайте !s.empty() как иероглиф:)
no subject
Date: 2008-03-29 08:10 am (UTC)... Лемпел Зил, Лемпел Зив, Лемпел Будет Зить! ...
no subject
Date: 2008-03-29 08:54 am (UTC)(no subject)
From:no subject
Date: 2008-03-29 08:19 am (UTC)no subject
Date: 2008-03-29 09:57 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-03-29 08:24 am (UTC)Из работающего проекта:
#define ifnot(x) if(!(x))
no subject
Date: 2008-03-29 08:41 am (UTC)if (s) { }Or, even better:
string f (); if (string s = f ()) { }no subject
Date: 2008-03-29 08:57 am (UTC)if(DontEmpty(sepulka))
...
bool DontEmpty(string s)
{
if(!s.empty()) return true
else return false;
}
no subject
Date: 2008-03-29 09:11 am (UTC)(no subject)
From:Re: I have more
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: