The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В стандарт C++ предложено добавить API на основе свободной г..., opennews (??), 05-Янв-14, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


53. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от 0xd34df00d (??), 05-Янв-14, 20:11 
> как надоели...
> лучше бы енумы и модули нормальные сделали

А что с енумами-то не так, особенно в 11?

Вот нормальную RTTI/CTTI сделали бы, концепты, это вот всё — это да, такие претензии я бы ещё понял.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

121. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от anonymous (??), 06-Янв-14, 13:25 
Проблемы енума все те же:

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

2. перевод енума в строку тоже как был корявый, так и остался, потому что это не настоящий класс и в нем не может быть методов.

3. нет итератора по енуму.

Нововведённое ограничение области видимости бесполезно, потому что всё равно надо по-старинке завернуть енум в класс или неймспейс чтобы реализовать вышеописанные пункты в объектном стиле.

Ответить | Правка | Наверх | Cообщить модератору

124. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от тоже Анонимemail (ok), 06-Янв-14, 15:02 
А при чем здесь С++ enum? Для ваших задач нужен не enum, а статическая std::map с ключами std::string или класс на ее основе. Для тех задач, где в С++ используется enum, это чрезвычайный оверхед, поэтому в стандарте ничего подобного и нет.
Ответить | Правка | Наверх | Cообщить модератору

140. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от Аноним (-), 07-Янв-14, 01:32 
Можете не рассказывать, я прекрасно знаю, как простейшая семантика типа енума в с++ вырастает в десятки строчек мусора ради того, чтобы было "всё правильно". Десятки статических мапов инициализируются при старте, всё вокруг трещит винтом и иногда ещё падает из-за того, что очередной новый коллега в порядке инициализации не разобрался.

С++ используется в разных задачах, а не только для "тех". Когда счёт строчек в программном продукте идёт на сотни тысяч, а коллеги исчисляются десятками, то язык должен помогать, а не побеждать прогеров и сроки.

Смешно просто, сама суть типа - enumerable - не работает. Никакой ни енумербл, хрен его проитерируешь. И даже это в 2011 году не смогли сделать.

Ответить | Правка | Наверх | Cообщить модератору

162. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от annulen (ok), 10-Янв-14, 13:02 
> А при чем здесь С++ enum? Для ваших задач нужен не enum,
> а статическая std::map с ключами std::string или класс на ее основе.

Здесь должен быть как минимум std::unordered_map, хотя гораздо правильнее было бы встроить в компилятор генерацию идеальных хэш-функций для статических хэшей, как в gperf.

Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

125. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от 0xd34df00d (??), 06-Янв-14, 16:42 
Ну так это всё к CTTI и RTTI на самом деле.

По всем функциям класса (в темплейте) или объекта (в рантайме) тоже бывает полезно пройтись, например.

Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

141. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от фдуч (?), 07-Янв-14, 01:35 
> Ну так это всё к CTTI и RTTI на самом деле.
> По всем функциям класса (в темплейте) или объекта (в рантайме) тоже бывает
> полезно пройтись, например.

А как угодно, хоть синтаксический сахар, хоть RTTI. Лишь бы на 10 полезных строк не надо было писать 10 бесполезных.
Всего лишь нужно было сделать как в яве хотя бы. Енум - обычный класс со статическими константами. И область видимости тут и методы и даже базу с RTTI можно в stdlib вложить.

Ответить | Правка | Наверх | Cообщить модератору

147. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от Аноним (-), 07-Янв-14, 06:02 
> Всего лишь нужно было сделать как в яве хотя бы.

Если нужно как в яве - нужно использовать яву. Не нужно для этого делать из си яву.

Ответить | Правка | Наверх | Cообщить модератору

135. "В стандарт C++ предложено добавить API на основе..."  +/
Сообщение от arisu (ok), 06-Янв-14, 21:24 
> перевод в строку (кто использовал енумы для описания ключевых слов какого-либо
> входного/выходного потока или конфига, тот поймёт эту боль).

неа, не понимаю. это спокойно автоматизируется.

Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

142. "В стандарт C++ предложено добавить API на основе..."  +/
Сообщение от фдуч (?), 07-Янв-14, 01:37 
>> перевод в строку (кто использовал енумы для описания ключевых слов какого-либо
>> входного/выходного потока или конфига, тот поймёт эту боль).
> неа, не понимаю. это спокойно автоматизируется.

Я ж разве спорю. В с++ всё можно сделать. Спокойно. Я и сам так делал, пока на с++ работал. Просто ещё +30% к числу полезных строчек кода.

Ответить | Правка | Наверх | Cообщить модератору

122. "В стандарт C++ предложено добавить API на основе свободной г..."  +/
Сообщение от фдуч (?), 06-Янв-14, 13:26 
Проблемы енума все те же:

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

2. перевод енума в строку тоже как был корявый, так и остался, потому что это не настоящий класс и в нем не может быть методов.

3. нет итератора по енуму.

Нововведённое ограничение области видимости бесполезно, потому что всё равно надо по-старинке завернуть енум в класс или неймспейс чтобы реализовать вышеописанные пункты в объектном стиле.

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру