[ANN] вести с полей 2007-08
От: jazzer Россия Skype: enerjazzer
Дата: 20.08.07 12:25
Оценка: 93 (11)
августовская почта комитета (скроллируйте в самый низ страницы):
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/

Что интересно:

Текущее состояниее стандартизации:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2336.html (про язык)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2363.html (про библиотеку)

текущий драфт стардарта: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2369.pdf

предложение при остановке программы запускать еще одну функцию до уничтожения статических объектов, если хочется что-то с ними сделать (скажем, записать что-нть в файл): http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2383.html
сейчас это в общем случае сделать нельзя:

For an object with static storage duration constructed after a function is registered with atexit, then following the call to exit, the registered function is not called until the execution of the object’s destructor has completed.

т.е. всеми любимый синглтон Майерса идет лесом.

Предложение по ограничению using: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2386.pdf
Если сейчас заюзать std в каком-нть пространстве имен, а потом заюзать само это пространство, то std автоматически придет в комплекте. Иногда это нужно, иногда — нет.

Далее идут покушения на святое.

Предложение убить POD: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
Вернее, разделить его его свойства на части — что считать binary compatible, что — trivial, и т.д.
Если примут — многие конструкции, которые не попадали под все требования ПОДов, попадут под определенные новые требования и с ними станет работать намного проще (например, появится возможность их двигать через memcpy.

Предложение убить (в смысле, тоже разобрать на части) точки следования: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
Это предложение не новое, но активно обсуждается, как и все, что связано с параллельностью:
Dynamic Initialization and Destruction with Concurrency: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2382.html
Concurrency memory model compiler consequences: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2338.html
Concurrency memory model (revised again): http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2334.htm
Memory Fences: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2362.html
C++ Atomic Types and Operations: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2381.html

Предложение поуправлять дефолтной генерацией разных вещей, которые генерятся/не генерятся сейчас сами:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm

Предложение разрешить задать инициализаторы по умолчанию для членов класса: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2354.htm

Атрибуты:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2379.pdf

Наследование конструкторов (включая конструкторы по умолчанию!):
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2376.html

Продолжается обсуждение auto:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2337.pdf
Надеюсь, они его успеют прояснить достаточно, чтоб нам не иметь потом с ним больших проблем

Несколько предложений касательно C++ Data-Dependency Ordering (на низком уровне):
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2359.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2360.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2361.html
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: [ANN] вести с полей 2007-08
От: korzh.pavel Россия  
Дата: 20.08.07 12:57
Оценка:
Здравствуйте, jazzer, Вы писали:

J>августовская почта комитета (скроллируйте в самый низ страницы):

J>http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/

Спасибо что держишь в курсе. Так держать!

J>Предложение убить POD: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm

J>Вернее, разделить его его свойства на части — что считать binary compatible, что — trivial, и т.д.
J>Если примут — многие конструкции, которые не попадали под все требования ПОДов, попадут под определенные новые требования и с ними станет работать намного проще (например, появится возможность их двигать через memcpy.

Вот это правильно.
Re: [ANN] вести с полей 2007-08
От: Шебеко Евгений  
Дата: 21.08.07 13:32
Оценка:
J>Предложение убить (в смысле, тоже разобрать на части) точки следования: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
Чего-то я не врубился немного.

hndl&&hndl->is_open()


не будет работать что ли?
Или я что-то не так понял
Re: [ANN] вести с полей 2007-08
От: Константин Л.  
Дата: 21.08.07 14:42
Оценка:
Здравствуйте, jazzer, Вы писали:

[]

Strongly Typed Enums (revision 3)

хорошая идея

Explicit Virtual Overides

Это про
struct i
{
virtual void f( int ){}
};

struct j : public i
{
  void f( long ){} //oops
};


предлагаются атрибуты [check_names]] для проверки, [new]] [hiding]] для соотв. разруливания одинаковых имен

имхо, надо сделать virtual/override обязательным при переопределении.

Inheriting Constructors (revision 2)
надо подумать, но, наверное лучше иметь чем нет
Re[2]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 21.08.07 15:05
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:

J>>Предложение убить (в смысле, тоже разобрать на части) точки следования: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html

ШЕ>Чего-то я не врубился немного.

ШЕ>
ШЕ>hndl&&hndl->is_open()
ШЕ>


ШЕ>не будет работать что ли?

ШЕ>Или я что-то не так понял
А ктото собирается делать atomic storage duration ? Вон exception handling прописан и у всех отговорки что деление на 0 несинхронное и типа не обязательное. Для этого поддержка со стороны ос нужна, если не железа . Да и проку мало от hndl&&hndl->is_open() Нужно боле крупные кески лочить, а не один оператор до ;
Re[3]: [ANN] вести с полей 2007-08
От: Шебеко Евгений  
Дата: 21.08.07 15:22
Оценка:
P>А ктото собирается делать atomic storage duration ? Вон exception handling прописан и у всех отговорки что деление на 0 несинхронное и типа не обязательное. Для этого поддержка со стороны ос нужна, если не железа . Да и проку мало от hndl&&hndl->is_open() Нужно боле крупные кески лочить, а не один оператор до ;

При чём тут исключения и деление на ноль?
bool watcher_t::is_connected() const
{
    return hndl&&hndl->is_open();
}

Я к тому что сейчас мне компилятор гарантирует, что правая часть будет вычисляться только если hndl!=0
Многозадачность в этом куске кода меня мало волнует.

А смутило меня это http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html

Deleted as redundant with descriptions of operators (original text from p17):
(*зачёркнуто*)
In the evaluation of each of the expressions

a && b
a || b
a ? b : c
a , b
using the built-in meaning of the operators in these expressions (5.14, 5.15, 5.16, 5.18), there is a sequence point after the evaluation of the first expression. [ Footnote: The operators indicated in this paragraph are the built-in operators, as described in clause 5. When one of these operators is overloaded (clause 13) in a valid context, thus designating a user-defined operator function, the expression designates a function invocation, and the operands form an argument list, without an implied sequence point between them. —end footnote ]
(*зачёркнуто*)


Хотя скорее всего всё останется как есть, просто я не умею читать заметки к стандарту
Re[2]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 21.08.07 15:32
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, jazzer, Вы писали:


КЛ>[]


КЛ>Strongly Typed Enums (revision 3)


КЛ>хорошая идея

Эта идея еще в Паскале было реализована, и в С мне кажется было построже.

1. В СПП кривая реализация константности — попытка усидеть на 2-х стульях исполнения и рунтайм. Кстати в проекте можно иметь одноименные глобальные обьекты, которые отльчаются только констаностью.

2. понаписано куча шаблонов где енум как инт.

3. енум всеравно кудато писать, передавать нужно. Или для чисто внутренних целей однострочеый enum {a=,b=...}, а для серьезных применений многострочный дефайн?
Re[4]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 21.08.07 15:40
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:


ШЕ>Я к тому что сейчас мне компилятор гарантирует, что правая часть будет вычисляться только если hndl!=0

ШЕ>Многозадачность в этом куске кода меня мало волнует.
Я думал hndl какойто атомарный, вроде ссылка про это была. А при перегрузке sequence point нету и быть не может
Re[4]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 21.08.07 15:53
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:ШЕ>

ШЕ>Deleted as redundant with descriptions of operators (original text from p17):
ШЕ>(*зачёркнуто*)

А — оно все зачеркнуто Ну тогда не знаю
Re[4]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 21.08.07 15:59
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:

Так хотели удалить как redundant , а потом решили оставить явное обязательство, ничего не меняется
Re[2]: [ANN] вести с полей 2007-08
От: Programador  
Дата: 22.08.07 07:20
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:

ШЕ>
ШЕ>hndl&&hndl->is_open()
ШЕ>


Комуто показалось это излишним и хочет выкинуть из стандарта.
А если взять такой код
wait_io_complete() && *buffer

разработчик компиляторов решит сооптимизировать и начать со второго поскольку оно очевидно быстрее

я раньше
if()
if()
{
}

писал, пока новый стандарт не изучил
Re[2]: [ANN] вести с полей 2007-08
От: jazzer Россия Skype: enerjazzer
Дата: 22.08.07 14:06
Оценка:
Здравствуйте, Шебеко Евгений, Вы писали:

J>>Предложение убить (в смысле, тоже разобрать на части) точки следования: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html

ШЕ>Чего-то я не врубился немного.

ШЕ>
ШЕ>hndl&&hndl->is_open()
ШЕ>


ШЕ>не будет работать что ли?

ШЕ>Или я что-то не так понял

не так понял.
Надо читать все целиком, а не одно только это.
Если посмотришь ниже, то увидишь (я удалил зачеркнутое, чтоб не мозолило глаза):


5.14p2 (logical AND operator), and also 5.15p2 (logical OR operator):

The result is a bool. If the second expression is evaluated, every value computation and side effect associated with the first expression is sequenced before every value computation and side effect associated with the second expression.

Т.е. описываются изменения во втором параграфе.
Первый параграф никуда не делася и в нем требование осталось:

The && operator groups left-to-right. The operands are both implicitly converted to type bool (clause 4).
The result is true if both operands are true and false otherwise. Unlike &, && guarantees left-to-right
evaluation: the second operand is not evaluated if the first operand is false.

Аналогично в 5.15/2.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.