This is a duplicate. I sent this to the wrong thread by mistake. I'm sorry.
draft of the is_movable trait is attached.
- Implicit implementation is based on the has_trivial_copy trait.
- For STL configurations, which defines BOOST_HAS_MOVABLE_STL,
is_movable.hpp declares STL containers (and their const versions) as
movable. Partial template specialization is required
- I'm not sure with volatiles. has_trivial_copy declares volatile types
explicitly as not has_trivial_copy. I don't know why but is_movable
should probably follow this.
- I have tested with MSVC (6, 7.1 and 8) and GCC (3.2.3 - MinGW)
compilers. MSVC is fine but GCC complains with specializations for STL
types. It seems to be related to a different macro expansion strategy of
preprocessor. I'm not able to use BOOST_PP_COMMA macro correctly. I will
appreciate any help.