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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Новый стандарт C++. C++09, Что нас ожидает... 
:(
    Опции темы
Любитель
Дата 24.6.2007, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(JackYF @  24.6.2007,  22:48 Найти цитируемый пост)
А чем они принципиально отличаются? кроме путей?

Системный - это системный. Чтоб его не подменили, например. Уже полезно отделить сие будет.

А наш - он наш smile Пишем либу, юзая internal описатель. Инклюдим наш заголовок. Доступ есть. Другой проект теперь будет инклюдить как обычную либу - доступа нет. Причём, если либа комерческая, инклюдить буду лишь бинари-хейдер. Для онли бинари хейдеров разумно запретить инклюд как своих. Ибо явно не свои smile

Цитата(JackYF @  24.6.2007,  22:48 Найти цитируемый пост)
Дороже, сложнее и дольше выйдет, как мне кажется.

Дык просто развить идею прекомпилед-хейдеров. gcc и vc++ точно отлично справляются с этим. EDG-производные, насколько я знаю тоже (причём несколько методов). Я думаю хватит. Несложно это. В любом случае при трансляции компилер хранит этот бинари-хейдер в памяти. Многие юзают кэш автоматом.


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 25.6.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


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

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



Цитата(Любитель @  24.6.2007,  23:21 Найти цитируемый пост)
Системный - это системный. Чтоб его не подменили, например. Уже полезно отделить сие будет.

А наш - он наш smile Пишем либу, юзая internal описатель. Инклюдим наш заголовок. Доступ есть. Другой проект теперь будет инклюдить как обычную либу - доступа нет. Причём, если либа комерческая, инклюдить буду лишь бинари-хейдер. Для онли бинари хейдеров разумно запретить инклюд как своих. Ибо явно не свои smile


Не. Многовато геморроя. Да и разделение на "наши", "ваши" и "непонятно чьи" все равно будут подменять, если очень захочется. Бинарный файл заменили и - опаньки. Не, не стоит.



Цитата(Любитель @  24.6.2007,  23:21 Найти цитируемый пост)
Дык просто развить идею прекомпилед-хейдеров. gcc и vc++ точно отлично справляются с этим.

Ну... может быть. Хотя все равно не этим стандарт должен заниматься, и этим он заниматься не будет. У него (комитета) и без этого головной боли немало.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
MAKCim
Дата 25.6.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(Любитель @  24.6.2007,  23:21 Найти цитируемый пост)
Системный - это системный. Чтоб его не подменили, например. Уже полезно отделить сие будет.

подменить на самом деле очень просто, неважно, системный или не системный
директория то известна


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 25.6.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Любитель @  24.6.2007,  10:36 Найти цитируемый пост)
В связи с этим хотелось бы ещё и нормальные тиипобезопасные переменные параметры функций. Поюсню примерный синтаксис и реализацию.

Упомянутая тобой проблема решается с помощью Variadic Templates + Concepts smile 


Цитата(Любитель @  24.6.2007,  10:36 Найти цитируемый пост)
Хотелось бы по конкретней узнать: будут ли специальные языковые конструкции для синхронизации (типа блок операций, выполняемых одновременно лишь в одном потоке)? Очень хотелось бы.

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


Цитата(Любитель @  24.6.2007,  10:36 Найти цитируемый пост)
Судя по приведённому коду, гляжу и явное включение значений енумов в текущий контекст убрали (что, безусловно, хорошо). Однако, логично было бы ещё что-то типа:

Старые enum'ы остались и вся их семантика тоже. Появились новые, более строгие. Так, что то, чего ты хочешь тоже достигается несложно smile.


Цитата(Любитель @  24.6.2007,  10:36 Найти цитируемый пост)
Ещё что-то не заметил упоминания про final/sealed (как для классов, так и для методов). Тоже, нужная вещь.
Я тоже smile. Пока упоминаний не встречал... ни в рабочем черновике, ни в отдельных документах.

Цитата(Любитель @  24.6.2007,  11:53 Найти цитируемый пост)
Ещё - когда же мы получим инклюд без препроцессора?!

Оооо... как же это я забыл smile.
В общем готовиться целая система под названием "Modules". Это будет что-то с чем-то. И скорость компиляции сильно возрастёт. И вообще всё там будет зашибись... Одна проблема: к 2009 году эта фича готова не будет. Её выпустят либо вместе с TR2, либо как отдельный TR.
Там будет всё, что ты упомянул и многое другое smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Любитель
Дата 26.6.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(MAKCim @  25.6.2007,  10:53 Найти цитируемый пост)
подменить на самом деле очень просто, неважно, системный или не системныйдиректория то известна

Ну если так - то и компилер заменить можно smile Имеются ввиду подмены другим файлом (в другой папочке).

Цитата(archimed7592 @  25.6.2007,  14:45 Найти цитируемый пост)
Упомянутая тобой проблема решается с помощью Variadic Templates + Concepts

Не решается. Если я правильно понимаю, мы получим на 2 аргумента одну функцию, на три другую и т. д. Мне бы хотелось одну, но с контенйером. Здесь идеологически шаблоны не нужны. smile

Цитата(archimed7592 @  25.6.2007,  14:45 Найти цитируемый пост)
Старые enum'ы остались и вся их семантика тоже. Появились новые, более строгие. Так, что то, чего ты хочешь тоже достигается несложно

Мне бы хотелось для новых юзинг (пусть и крайне редко). Есть или нет?


--------------------
PM MAIL ICQ Skype   Вверх
Любитель
Дата 26.6.2007, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(archimed7592 @  25.6.2007,  14:45 Найти цитируемый пост)
Языковых - нет.

А жаль кстати. Хотелось бы некий аналог подобных блоков из шарпа - очень наглядно smile

Ещё хотелось бы что-то типа атрибутов из того же шарпа smile Очень красивая вещь...

Добавлено через 4 минуты и 46 секунд
Цитата(archimed7592 @  25.6.2007,  14:45 Найти цитируемый пост)
В общем готовиться целая система под названием "Modules".

Немного посмотрел. Супер. Тяжело будет правда, наверно, портировать текущий код :(


--------------------
PM MAIL ICQ Skype   Вверх
caustic
Дата 5.12.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго дня!
Я заметил, что в новом стандарте многие предпочитают видеть аналог ключевого слова sealed. На днях случайно обнаружил, что в 2005 студии такое ключевое слово есть и даже работает. Проверил таким образом:


Код

class State sealed
{
public:
    State(unsigned long id = 0);

    virtual void Load();
    virtual void Close();
};

class TestState : public State
{
};


Сообщение компилятора: 
Error     1     error C3246: 'TestState' : cannot inherit from 'State' as it has been declared as 'sealed'   

Вопрос: Это реализовано только под студией или же в других стандартах тоже имеется?

Это сообщение отредактировал(а) caustic - 5.12.2007, 09:34
PM MAIL   Вверх
archimed7592
Дата 5.12.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(caustic @  5.12.2007,  09:12 Найти цитируемый пост)
Вопрос: Это реализовано только под студией или же в других стандартах тоже имеется?

Это реализованно студией в рамках поддержки managed C++. По идее она должна предупреждать, что Вы используете нестандартную возможность языка, пришедшую из .NET'а.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Loony
Дата 6.12.2007, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Это реализованно студией в рамках поддержки managed C++. По идее она должна предупреждать, что Вы используете нестандартную возможность языка, пришедшую из .NET'а.


Ничего подобного. Сам тоже щас проверял. Предупреждений не было. Проект создавался просто как Empty Project, то есть получаем после компилляции машинный код, а не .NET сборку. Значит возможность эта в студии все таки реализована. Тоже интересно, где нибудь еще поддерживается!? 
PM MAIL   Вверх
archimed7592
Дата 6.12.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Loony @  6.12.2007,  08:10 Найти цитируемый пост)
Ничего подобного.

Если бы Вы читали чуть внимательней, то не делали бы таких резких утверждений.

Эта возможность в студии действительно реализована. Но реализовали её не потому что им просто так захотелось добавить возможность в язык. Реализовали её потому что она нужна была для полноценной поддержки managed C++. Ну а то, что эту возможность не запретили использовать в unmanaged C++ проектах - это уже их личное дело и никто не станет реализовывать эту возможность в других компиляторах.
Это точно такое же расширение, как, к примеру, пространства имён у перечислений.
Код

enum E { e1, e2, e3 };
E v2 = e1; // так по стандарту
E v1 = E::e1; // а так разрешает писать студия из-за того, что ей просто нужно разрешать так писать в C++/CLI.


Да, эти возможности доступны в обыкновенных проектах и я не утверждал обратного. Я говорю о причине появления этих возможностей и, соответственно, о следствиях - эти возможности не появятся в других компиляторах просто так. Strongly typed enums есть в черновике стандарта и скоро они появятся, а вот sealed - нету и, соответственно, это останется расширением студии.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Loony
Дата 6.12.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Если бы Вы читали чуть внимательней, то не делали бы таких резких утверждений.


Видимо мы немного не поняли друг друга. Я извиняюсь, если прозвучало резко, лишь хотел подчеркнуть наличие этой возможности в студии и отсутствие варнингов со стороны компилятора. Я не утверждал, что студия это стандарт де-факто и все ее возможности должны поддерживать другие компиляторы!

Цитата

Ну а то, что эту возможность не запретили использовать в unmanaged C++ проектах - это уже их личное дело и никто не станет реализовывать эту возможность в других компиляторах.


Ну о возможной реализации можно еще поспорить, мало ли компиляторов на белом свете. А узнать о ее наличии или отсутствии было интересно.
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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