GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Classes | Namespaces | Macros | Typedefs | Functions
types.h File Reference

Typedefs for easier changing of types. More...

#include <gtsam/dllexport.h>
#include <gtsam/config.h>
#include <cstddef>
#include <cstdint>
#include <exception>
#include <string>
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  gtsam::const_selector< TEST_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 
struct  gtsam::const_selector< BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 
struct  gtsam::const_selector< const BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 
struct  gtsam::ValueWithDefault< T, defaultValue >
 
class  gtsam::TbbOpenMPMixedScope
 
struct  gtsam::needs_eigen_aligned_allocator< typename, typename >
 
struct  gtsam::needs_eigen_aligned_allocator< T, void_t< typename T::_eigen_aligned_allocator_trait > >
 

Namespaces

 gtsam
 

Macros

#define GTSAM_DEPRECATED
 
#define DO_PRAGMA(x)   _Pragma (#x)
 
#define CLANG_DIAGNOSTIC_PUSH_IGNORE(diag)
 
#define GCC_DIAGNOSTIC_PUSH_IGNORE(diag)
 
#define MSVC_DIAGNOSTIC_PUSH_IGNORE(code)
 
#define DIAGNOSTIC_POP()
 
#define assert_throw(CONDITION, EXCEPTION)
 
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
 
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
 

Typedefs

typedef std::uint64_t gtsam::Key
 Integer nonlinear key type.
 
typedef std::uint64_t gtsam::FactorIndex
 Integer nonlinear factor index type.
 
typedef ptrdiff_t gtsam::DenseIndex
 The index type for Eigen objects.
 
template<typename ... >
using gtsam::void_t = void
 Convenience void_t as we assume C++11, it will not conflict the std one in C++17 as this is in gtsam::
 

Functions

std::string GTSAM_EXPORT gtsam::demangle (const char *name)
 Function to demangle type name of variable, e.g. demangle(typeid(x).name())
 

Detailed Description

Typedefs for easier changing of types.

Author
Richard Roberts
Date
Aug 21, 2010

Macro Definition Documentation

◆ assert_throw

#define assert_throw (   CONDITION,
  EXCEPTION 
)
Value:
if (!(CONDITION)) { \
throw (EXCEPTION); \
}

An assertion that throws an exception if NDEBUG is not defined and evaluates to an empty statement otherwise.

◆ GTSAM_MAKE_ALIGNED_OPERATOR_NEW

#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
Value:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW \
using _eigen_aligned_allocator_trait = void;

This marks a GTSAM object to require alignment. With this macro an object will automatically be allocated in aligned memory when one uses gtsam::make_shared. It reduces future misalignment problems that is hard to debug. See https://eigen.tuxfamily.org/dox/group__DenseMatrixManipulation__Alignement.html for detailed explanation.

◆ GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF

#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF (   NeedsToAlign)
Value:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
using _eigen_aligned_allocator_trait = void;

This marks a GTSAM object to require alignment. With this macro an object will automatically be allocated in aligned memory when one uses gtsam::make_shared. It reduces future misalignment problems that is hard to debug. See https://eigen.tuxfamily.org/dox/group__DenseMatrixManipulation__Alignement.html for detailed explanation.