Loading...
Searching...
No Matches
types.h File Reference
Base

Typedefs for easier changing of types. More...

Go to the source code of this file.

## Classes

struct | gtsam::const_selector< TEST_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
| Helper class that uses templates to select between two types based on whether TEST_TYPE is const or not. More...
struct | gtsam::const_selector< BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
| Specialization for the non-const version. More...
struct | gtsam::const_selector< const BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
| Specialization for the const version. More...
struct | gtsam::ValueWithDefault< T, defaultValue >
| Helper struct that encapsulates a value with a default, this is just used as a member object so you don't have to specify defaults in the class constructor. More...
class | gtsam::ListOfOneContainer< T >
| A helper class that behaves as a container with one element, and works with boost::range. More...
class | gtsam::TbbOpenMPMixedScope
| An object whose scope defines a block where TBB and OpenMP parallelism are mixed. More...
struct | gtsam::needs_eigen_aligned_allocator< typename, typename >
| A SFINAE trait to mark classes that need special alignment. More...
struct | gtsam::needs_eigen_aligned_allocator< T, void_t< typename T::_eigen_aligned_allocator_trait > >

## Namespaces

namespace | gtsam
| Global functions in a separate testing namespace.

## Macros

#define | GTSAM_DEPRECATED
#define | DO_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)
| An assertion that throws an exception if NDEBUG is not defined and evaluates to an empty statement otherwise.
#define | GTSAM_MAKE_ALIGNED_OPERATOR_NEW
| This marks a GTSAM object to require alignment.
#define | GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
| This marks a GTSAM object to require alignment.

## 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::demangle (const char *name)
| Pretty print Value type name.
| gtsam::BOOST_CONCEPT_ASSERT ((boost::RandomAccessRangeConcept< ListOfOneContainer< int > >))
template<typename T>
ListOfOneContainer< T > | gtsam::ListOfOne (const T &element)
| Factory function for ListOfOneContainer to enable ListOfOne(e) syntax.

## 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.

## DO_PRAGMA

#define DO_PRAGMA | ( |  | x | ) |

Value:
_Pragma (#x)

## 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.