Opened 10 years ago

Last modified 9 years ago

#8189 closed Feature Requests

Port some type traits from Boost.Variant — at Version 1

Reported by: Antony Polukhin Owned by: Antony Polukhin
Milestone: Boost 1.54.0 Component: type_traits
Version: Boost 1.52.0 Severity: Problem
Keywords: rvalues move trivial Cc: john@…

Description (last modified by Antony Polukhin)

Boost.Varaint has the following traits, that can be used across modules and sould be ported to Boost.TypeTraits

has_nothrow_move_assign
has_nothrow_move_constructor
has_trivial_move_assign
has_trivial_move_constructor

Implementation may be tuned to use C++11 features it they are available.

Change History (2)

by Antony Polukhin, 10 years ago

Attachment: type_traits.patch added

Initial patch (no documentation, but there are some tests)

comment:1 by Antony Polukhin, 10 years ago

Description: modified (diff)
Status: newassigned

Current patch has following issues, that must be solved before merging:

  • has_* functions must be renamed to is_*able to better reflect their behavior and to have more conformance with C++11
  • is_pod<T>::value || __has_trivial_move_assign(T) and is_pod<T>::value || __has_trivial_move_constructor(T) must be added to Clang and VC11 intrinsics
  • tests for detection of triviality and noexcept of user defined move operators and constructors on compilers with noexcept support
Note: See TracTickets for help on using tickets.