$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] status of type traits addition (has_operator_xxx)
From: Frédéric Bron (frederic.bron_at_[hidden])
Date: 2011-01-13 15:09:29
Here is the status of the type-traits addition:
- I added the following operators: +=, *=, -=, /*, %=, &=, |=, ^=, <<,
>>, >>=, <<=, prefix ++, prefix --, postfix ++, postfix -- so that the
covered operators are now:
- I added in the doc. the fact that private operators are not covered
and lead to compile time errors
- for operators on built-in types that require integer arguments (%,
bitwise op.): I replaced a long list of specialiazation by an
automatic detection
Remaining work:
1. check what happens for pointer arguments,
2. implement trait for:
. operator=
. has_address_of_op<T>
. has_dereference_op<T>
. has_member_access_op<T>
. has_subscript_op<T1 [,T2]>
. has_pointer_to_member_op<T1 [,T2]>
. has_comma_op<T1 [,T2]>
. has_function_call_op<T,R [,P1, ...]>
3. have an MPL predicate for return value
As I have only little time (full time work and 3 young children...), I will:
- certainly do 1.,
- I will certainly leave 3. to somebody else in the future because I
am not enough agile with MPL,
- as for 2., 3 possibilities:
(i) I do it but it will probably postpone the addition for a long time,
(ii) I just leave it and I know is is a shame not to provide all
operator detection (nobody's perfect) or
(iii) somebody else agrees to add them and have them reviewed at the
same time.
Frédéric