commit | b4e27240b2404afbab740853c2c200dcd290e24a | [log] [tgz] |
---|---|---|
author | Alex Stewart <alexs.mac@gmail.com> | Sat Nov 12 17:18:25 2016 +0000 |
committer | Alex Stewart <alexs.mac@gmail.com> | Sat Nov 12 17:18:25 2016 +0000 |
tree | 0ea0417d2bd8f78666911213a91fa17a21ce8d46 | |
parent | 717417512b4d979f761d33e273447392b09d1443 [diff] |
Use default alignment if alignof(std::max_align_t) < 16 with C++11. - As per Andrew Hunter’s comments in the commit which added Jet alignment when using C++11 here: https://ceres-solver-review.googlesource.com/#/c/7100, there is wide lattitude in the standard about what the maximum supported alignment can be. - Previously, we were forcing the alignment to 1, if the value of alignof(std::max_align_t), which we use as a proxy for the maximum supported alignment on the platform, was < 16. - An alignment of 1 is not valid for Jets, as it would weaken the natural alignment of the types within a Jet, which would typically be 4 (32-bit systems) or 8 (64-bit systems), thus resulting in a compiler error. - This was reported as issue 235 for Clang 3.8 on i386: https://github.com/ceres-solver/ceres-solver/issues/235. Change-Id: Ie39e5499c64f9231f29ebf4392992b5c9ce2e385
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.
Ceres development happens on Gerrit, including both repository hosting and code reviews. The GitHub Repository is a continuously updated mirror which is primarily meant for issue tracking. Please see our Contributing to Ceres Guide for more details.
The upstream Gerrit repository is
https://ceres-solver.googlesource.com/ceres-solver