|
BDE 4.14.0 Production release
|
#include <bslmf_iscopyconstructible.h>
This struct template implements a meta-function to determine whether the (template parameter) t_TYPE is copy constructible. This struct derives from bsl::true_type if the t_TYPE is copy constructible, and from bsl::false_type otherwise. This meta-function has the same syntax as the is_copy_constructible meta-function defined in the C++11 standard [meta.unary.prop]; on C++03 platforms, however, this meta-function defaults to true_type for all types that are not explicitly declared to have the bslmf::IsNonCopyable trait using the BSLMF_NESTED_TRAIT_DECLARATION macro. To mark a type as non-copyable, bslmf::IsNonCopyable must be specialized (for that type) to inherit from bsl::true_type.
The primary template for this traits handles only non-const-qualified types; partial specializations will handle some interesting cases, including the remaining const-qualified types.