#include <types.h>
A SFINAE trait to mark classes that need special alignment.
This is required to make boost::make_shared and etc respect alignment, which is essential for the Python wrappers to work properly.
When a GTSAM type is not declared with the type alias _eigen_aligned_allocator_trait = void
, the first template will be taken so needs_eigen_aligned_allocator
will be resolved to std::false_type
.
Otherwise, it will resolve to the second template, which will be resolved to std::true_type
.
Please refer to gtsam/base/make_shared.h
for an example.