Здравствуйте, enji, Вы писали:
E>Стащил у eao197.
это кто/что ?
E>Будущее мобильной разработки, Tizen 2.0. По моему, шикарно... 6 new, 3 каста, 1 delete и даже E_SUCCESS
вот не уверен, это сарказм, или как?
new и delete, действительно провоцируют вопросы...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, enji, Вы писали:
E>Стащил у eao197.
E>Будущее мобильной разработки, Tizen 2.0. По моему, шикарно... 6 new, 3 каста, 1 delete и даже E_SUCCESS E>
E> void
E> MyClass::HashMapSample(void)
E> {
E> HashMap map(SingleObjectDeleter);
E> // Constructs a %HashMap instance with default capacity, load factor, hash code provider, and comparer
E> map.Construct();
E> map.Add(new String(L"Zero"), new Integer(0)); // map.GetCount() : 1, map : (Zero -> 0)
E> map.Add(new String(L"One"), new Integer(1)); // map.GetCount() : 2, map : (Zero -> 0), (one -> 1)
E> map.Add(new String(L"Two"), new Integer(2)); // map.GetCount() : 3, map : (Zero -> 0), (one -> 1), (Two -> 2)
E> // Gets a value with the specified key
E> Integer* pValue = static_cast< Integer* > (map.GetValue(String(L"Zero"))); // pValue : 0
E> // Removes the value with the specified key
E> map.Remove(String(L"Zero")); // map.GetCount() : 2, map : (one -> 1), (Two -> 2)
E> // Uses an enumerator to access elements in the list
E> IMapEnumerator* pMapEnum = map.GetMapEnumeratorN();
E> String* pKey = null;
E> while (pMapEnum->MoveNext() == E_SUCCESS)
E> {
E> pKey = static_cast< String* > (pMapEnum->GetKey());
E> pValue = static_cast< Integer* > (pMapEnum->GetValue());
E> }
E> delete pMapEnum;
E> // Deallocates all objects
E> // Because the destructor calls RemoveAll() internally, you don't need to call RemoveAll() to destroy all elements at the end.
E> map.RemoveAll();
E> }
E>
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, enji, Вы писали:
E>>Стащил у eao197. X>это кто/что ?
Это неглупый мужчина, который писал здесь порой интересные вещи, пока не ушел из-за разногласий с модераторами. Ведет блог.
X>вот не уверен, это сарказм, или как?
Мысли разработчика.
E> void E> MyClass::HashMapSample(void)
Как я скучаю по старому доброму С и пятидюймовым дискетам.
E> HashMap map(SingleObjectDeleter); E> map.Add(new String(L"Zero"), new Integer(0)); // map.GetCount() : 1, map : (Zero -> 0) E> map.Add(new String(L"One"), new Integer(1)); // map.GetCount() : 2, map : (Zero -> 0), (one -> 1) E> map.Add(new String(L"Two"), new Integer(2)); // map.GetCount() : 3, map : (Zero -> 0), (one -> 1),
Черт! Кто мне подложил книжку по яве?
E> // Gets a value with the specified key E> Integer* pValue = static_cast< Integer* > (map.GetValue(String(L"Zero"))); // pValue : 0
Избегайте кастов в стиле С! И пусть не говорят, что я не знаю плюсов.
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, enji, Вы писали:
E>>Будущее мобильной разработки, Tizen 2.0. По моему, шикарно... 6 new, 3 каста, 1 delete и даже E_SUCCESS
Ops>А Tizen тут причем?
это код из его хелпа. И интерфейс контейнера намекает нам, что такого кода будет много...
Ops>Код как код, на govnokod.ru намного круче можно найти, а такого везде полно.
Ну это не говнокод.ру, а инновационный продукт интела и самсунга, как я понимаю...
Здравствуйте, enji, Вы писали:
Ops>>А Tizen тут причем? E>это код из его хелпа. И интерфейс контейнера намекает нам, что такого кода будет много... Ops>>Код как код, на govnokod.ru намного круче можно найти, а такого везде полно. E>Ну это не говнокод.ру, а инновационный продукт интела и самсунга, как я понимаю...
Как вариант, хелп спихнули на студентов?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Шутки в сторону, но это же ахтунг и аллес капут в одном флаконе
The object is not fully constructed after this constructor is called. For full construction,
the Construct() method must be called right after calling this constructor.
A: Tizen does not use the C++ exception mechanism. This reduces its footprint and runtime overhead. As a result, any exception occurring in C++ object construction cannot be reported to the application.
Furthermore, when a failure occurs in allocating resources during an object's construction, the object is partially constructed and its destructor is not called, possibly causing a resource leak. To resolve these problems, Tizen uses the two-phase construction idiom for many classes where exceptions must be reported to Tizen native applications. For more information, see Two-phase Construction.
Q: What happens if I do not call a Construct() method?
A: Some methods throw an exception, and some return a probably meaningless value. In any case, Tizen does not guarantee the reliability or consistency of user applications. You must make sure that the Construct()method is invoked properly before an instance of a two-phase construction class is used.
Я так понял, у них под исключениями понимаются не исключения С++, а коды возврата E_*.
Либо у них могут вылетать исключения в случае попытки использования объекта до вызова Construct().
В общем, они пошли по пути Симбиана, в котором не было исключений, типа слишком тяжелый механизм для мобильных устройств (при этом они собираются запускать Java, где исключения летают только в путь ).
Т.е. получается что-то между Си и С++.
Имхо, правильнее относиться как к Си с небольшим сиплюсовидным сахаром.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, landerhigh, Вы писали:
J>Я так понял, у них под исключениями понимаются не исключения С++, а коды возврата E_*.
Я вот документацию привык понимать буквально.
J>Либо у них могут вылетать исключения в случае попытки использования объекта до вызова Construct().
Да двухфазная инициализация — это жесть. Получается, что тебе дали объект, но сказать, можно ли его использовать, забыли. Особенно забавно на этом фоне выглядят конструкторы копирования
J>В общем, они пошли по пути Симбиана, в котором не было исключений, типа слишком тяжелый механизм для мобильных устройств (при этом они собираются запускать Java, где исключения летают только в путь ).
Вроде бы, собственно механизм исключений в Java достаточно легковесный. Однако сама идея экономить на спичках (икключениях), чтобы потом запускать Java попахивает каким-то идиотизмом.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, jazzer, Вы писали:
J>>Здравствуйте, landerhigh, Вы писали:
J>>Я так понял, у них под исключениями понимаются не исключения С++, а коды возврата E_*.
L>Я вот документацию привык понимать буквально.
Almost all APIs, except simple getter methods, can potentially throw an E_OUT_OF_MEMORY exception, although the APIs do not specify the out-of-memory (OOM) exception.
...
if (GetLastResult() == E_OUT_OF_MEMORY)
J>>Либо у них могут вылетать исключения в случае попытки использования объекта до вызова Construct().
L>Да двухфазная инициализация — это жесть. Получается, что тебе дали объект, но сказать, можно ли его использовать, забыли. Особенно забавно на этом фоне выглядят конструкторы копирования
Ну, может, у них есть какой-нть is_initialized()
J>>В общем, они пошли по пути Симбиана, в котором не было исключений, типа слишком тяжелый механизм для мобильных устройств (при этом они собираются запускать Java, где исключения летают только в путь ). L>Вроде бы, собственно механизм исключений в Java достаточно легковесный. Однако сама идея экономить на спичках (икключениях), чтобы потом запускать Java попахивает каким-то идиотизмом.
+1
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, enji, Вы писали:
Ops>>>А Tizen тут причем? E>>это код из его хелпа. И интерфейс контейнера намекает нам, что такого кода будет много... Ops>>>Код как код, на govnokod.ru намного круче можно найти, а такого везде полно. E>>Ну это не говнокод.ру, а инновационный продукт интела и самсунга, как я понимаю...
Ops>Как вариант, хелп спихнули на студентов?
Хелп спихнули на нативов — корейцев. Как, впрочем, и многое другое.
Здравствуйте, jazzer, Вы писали:
J>В общем, они пошли по пути Симбиана, в котором не было исключений, типа слишком тяжелый механизм для мобильных устройств
Выходит, не мне одному это показалось знакомым