[Boost-bugs] [Boost C++ Libraries] #6614: Start adapting Quaternions and Octonions for C++11

Subject: [Boost-bugs] [Boost C++ Libraries] #6614: Start adapting Quaternions and Octonions for C++11
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-02-25 01:28:17


#6614: Start adapting Quaternions and Octonions for C++11
----------------------------------------------------+-----------------------
 Reporter: dlwalker | Owner: johnmaddock
     Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: math
  Version: Boost 1.49.0 | Severity: Optimization
 Keywords: quaternion octonion constexpr noexcept |
----------------------------------------------------+-----------------------
 When I read up on C++11 features like `constexpr` and `noexcept`, I wonder
 what classes in Boost can be adapted for them. The quaternion and
 octonion class templates represent value-types that can easily be made
 `constexpr` compliant. Further, the specializations for the built-in
 floating-point types can be made `noexcept` for their operations. I have
 a patch that starts work on both fronts.

 Since the library is implemented with macro madness, I can't change too
 much without making the file unrecognizable to `diff` utilities. This
 means that some stuff in the specializations that could be `noexcept`
 can't be since they share textual implementation with the general
 templates' versions of the code.

 Some aggresive marking of constructors as `explicit` has been toned down,
 still conforming to the docs. Speaking of which, they have been changed
 to match the new code (plus two doc errors).

 For future directions, the big hurdle is the idiom that binary-operator @@
 is implemented in terms of @@=. That's generally OK in C++03, but now it
 disqualifies the former from being declared `constexpr` since the latter
 is mutating. Fixing this would entail flipping the relationship between
 the functions around.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6614>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC