Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чего Вам не хватает в стандарте Си++, Собираем предложения 
:(
    Опции темы
bsa
Дата 13.4.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(borisbn @  13.4.2011,  10:30 Найти цитируемый пост)
void setDiap( int max, int min = 0 

В данном случае лучше делать через перегрузку:
Код
void setDiap(int min, int max);
void setDiap(int max)
{
   setDiap(0, max);
}

PM   Вверх
mabrarov
Дата 13.4.2011, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 8
Всего: 9



Цитата(azesmcar @ 13.4.2011,  13:57)
2. параллельные алгоритмы
3. эффективная реализация thread-safe контейнеров
4. thread-pool
5. нормальный и не тормозной аналог sprintf-а.
6. добавить в стандарт библиотеку работы с сетью (возможно asio)

Вот этого как раз и не надо в стандарт. Это реализуется и должно реализовываться сторонними библиотеками (есть же Boost).
Вообще, комитет по стандартизации C++ хоть и жутко "тормозит", но, слава богу, ведет себя "по-взрослому" - не пытаясь сваять из C++ Java - "вот вам вместо языка (и, местами, вашей ОС) целая платформа".
Иначе C++, стандарты которого итак неважно поддерживаются в mobile/embedded-мире, так и останется расколотым на Modern C++ Design и то, что используют Google/Mozilla/etc. А так, в свете rvalue reference и clang, надежда еще живет  smile 
PM MAIL WWW Skype   Вверх
Alekseyl92
Дата 13.4.2011, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Цитата(borisbn @  13.4.2011,  09:01 Найти цитируемый пост)
При этом вызов будет выглядеть следующим образом:

Да ну, а потом запятые считать?
Лучше как в C#:
Код

foo(1, id=2, text="test");


Не хватает свойств (привет C#).
Они делают код красивым и безопасным (данные в private, а доступ, как к паблик).
PM MAIL WWW   Вверх
azesmcar
Дата 13.4.2011, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(mabrarov @  13.4.2011,  17:57 Найти цитируемый пост)
Вот этого как раз и не надо в стандарт. Это реализуется и должно реализовываться сторонними библиотеками (есть же Boost).

С тем же успехом реализуются и умные указатели, и STL и очень многое другое. Следуя твоей логике отказываемся от STL и пишем свои велосипеды, так-как пользоваться сторонними библиотеками не каждый может себе позволить. Я перечислил базовые средства, необходимые для построения современных приложений.
Цитата(mabrarov @  13.4.2011,  17:57 Найти цитируемый пост)
есть же Boost

Который используется далеко не в каждом проекте.
PM   Вверх
mabrarov
Дата 13.4.2011, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 8
Всего: 9



Цитата(azesmcar @ 13.4.2011,  19:40)
С тем же успехом реализуются и умные указатели, и STL и очень многое другое. Следуя твоей логике отказываемся от STL и пишем свои велосипеды, так-как пользоваться сторонними библиотеками не каждый может себе позволить. Я перечислил базовые средства, необходимые для построения современных приложений.

Контейнеры и указатели - достаточно обобщенные классы, чтобы быть, что называется, "из коробки".
А вот тот же Boost.Asio "уходит корнями" в ОС (которой может и не быть) гораздо дальше.
Стандартная библиотека C++ потому и называется стандартной, что должна предоставлять только обобщенные и "мелкие" кирпичики для дальнейшей разработки - с учетом многообразия всех тех сред, где C++ применяется и планирует применяться. Попытки засунуть в нее то, что хорошо иметь как сменный объектив у фотокамеры, приведут к превращению библиотеки в "платформу". 
Пример, как говорится, "у всех на виду" - J2SE, J2EE, J2ME (+ куча профилей), Android, GAE и т.п.
Насколько я знаком с мнением Страуструпа по этому поводу (вопрос по поводу Embedded C++) - он выступает за единую гибкую стандартную библиотеку + произвольное множество сторонних библиотек для конкретных целей/платформ.
Лично мне хватает тех же Boost-вских потоков и Boost.Asio.
PM MAIL WWW Skype   Вверх
azesmcar
Дата 13.4.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(mabrarov @  13.4.2011,  20:04 Найти цитируемый пост)
Контейнеры и указатели - достаточно обобщенные классы, чтобы быть, что называется, "из коробки".

А параллельные алгоритмы это что-то специфичное?

Цитата(mabrarov @  13.4.2011,  20:04 Найти цитируемый пост)
А вот тот же Boost.Asio "уходит корнями" в ОС (которой может и не быть) гораздо дальше.

Без сетевых технологий сегодня обходиться редкая программа. Язык, библиотека которой не имеет стандартной библиотеки с поддержкой примитивных средств коммуникации - сильно усложняет жизнь программиста. Тоже самое можно сказать о поддержке базы данных. По сути сегодня, что написать более менее нужную программу на C++ программисту приходиться собирать конструктор из разнообразных библиотек (и некоторых весьма сомнительных), что приводит к усложнению поддержки кода. Лично мне это не по душе.

Цитата(mabrarov @  13.4.2011,  20:04 Найти цитируемый пост)
Стандартная библиотека C++ потому и называется стандартной, что должна предоставлять только обобщенные и "мелкие" кирпичики для дальнейшей разработки - с учетом многообразия всех тех сред, где C++ применяется и планирует применяться

С каких пор слово "стандартная" приобрела такой смысл?
Все перечисленное является кирпичиками, необходимыми для построения современных приложений. Половина вышеперечисленного есть в буст, другая половина в TBB.

Цитата(mabrarov @  13.4.2011,  20:04 Найти цитируемый пост)
Лично мне хватает тех же Boost-вских потоков и Boost.Asio. 

а мне - нет smile 



PM   Вверх
borisbn
Дата 13.4.2011, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



xvr, понял. некий закрытый клуб "только для членов" (в хорошем смысле этого слова) smile

Цитата(bsa @  13.4.2011,  17:39 Найти цитируемый пост)
В данном случае лучше делать через перегрузку:

не пойму чем лучше... то, что можно сделать - понятно, но то, что лучше... ведь я не предлагаю отменить перегрузку, а всего лишь дать возможность делать и так, и так...

Цитата(mabrarov @  13.4.2011,  20:04 Найти цитируемый пост)
Лично мне хватает тех же Boost-вских потоков

их же вроде ввели в C++0x. нет ?

Цитата(azesmcar @  13.4.2011,  20:36 Найти цитируемый пост)
По сути сегодня, что написать более менее нужную программу на C++ программисту приходиться собирать конструктор из разнообразных библиотек

поддерживаю в том плане, что у мнооооооогих программистов есть такой каталог типа common или shared или tools или utils, где собраны если не небоскрёбы, то как минимум приличные 9-ти этажки из тех самых "кирпичиков", предоставляемых стандартом, и у многих эти здания похожи как те новостройки из "С лёгким паром". Так почему бы это не объединить в библиотеку, которую назвать стандартной ?
По сути тот же boost - это и есть объединение всего того, что наваяли программисты за много лет. Ведь говоря, что "нам достаточно кирпичиков, из них можно построить всё, что хочешь" можно и от STL отказаться...


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
azesmcar
Дата 14.4.2011, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(borisbn @  13.4.2011,  22:21 Найти цитируемый пост)
Так почему бы это не объединить в библиотеку, которую назвать стандартной ?

Тут дело не столько в названии, сколько в гарантии стабильности (или по крайней мере backward compatability) интерфейса этой библиотеки.

Цитата(borisbn @  13.4.2011,  22:21 Найти цитируемый пост)
их же вроде ввели в C++0x. нет ?

Ввели, и не только их. Кстати, потоки тоже уходят корнями в ОС.

PM   Вверх
mimik
Дата 14.4.2011, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



Параллельное присваивание
Код

a, b = 1, 11

PM   Вверх
ИванМ
Дата 14.4.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



На счет параметров по умолчанию в середине функции идея хорошая.
Хотелось бы улучшить делегирование. Например, в стиле Builder'а который я не люблю, но вещь там есть хорошаю, которая называется __closure. Либо реализовать стандартный механизм сигналов/слотов. Либо что-то сделать в стиле delegate из c#.
Добавить lexical_cast или как предлагал borisbn функции преобразования внутри класса string.
Возможность определять функции внутри любого блока кода.
PM MAIL   Вверх
mimik
Дата 14.4.2011, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



PM   Вверх
ИванМ
Дата 14.4.2011, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



mimik, лямбда-фунции можно определить один раз внутри блока кода и потом использовать несколько раз? Если можно, то, в принципе, то, только как-то сложно. Обычный синтаксис не помешал бы.
PM MAIL   Вверх
azesmcar
Дата 14.4.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(ИванМ @  14.4.2011,  10:53 Найти цитируемый пост)
mimik, лямбда-фунции можно определить один раз внутри блока кода и потом использовать несколько раз? Если можно, то, в принципе, то, только как-то сложно. Обычный синтаксис не помешал бы. 

конечно можно.
Код

#include <iostream>
#include <functional>

int main()
{
   std::function<void()> f = [](){ std::cout << "Yes!" << std::endl; };
   f();
   f();
   f();
}


Добавлено через 54 секунды
попроще
Код

auto f = [](){ std::cout << "Yes!" << std::endl; };

PM   Вверх
ИванМ
Дата 14.4.2011, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



azesmcar, тогда один пункт пожеланий убираю.
PM MAIL   Вверх
alexvs11
Дата 14.4.2011, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



#pragma once сделать стандартом

Добавлено через 14 минут и 20 секунд
да, кстати ключевое слово interface по аналогии с жабой и COM 
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0929 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.