xerus
a general purpose tensor library
internal.h File Reference

Header file for comfort functions and macros that should not be exported in the library. More...

#include "containerOutput.h"
#include <type_traits>
#include <memory>

Go to the source code of this file.

Macros

#define CHECK   XERUS_CHECK
 
#define IF_CHECK   XERUS_IF_CHECK
 
#define IF_NO_CHECK   XERUS_IF_NO_CHECK
 
#define INTERNAL_CHECK   XERUS_INTERNAL_CHECK
 
#define IS_LOGGING   XERUS_IS_LOGGING
 
#define LOG   XERUS_LOG
 
#define LOG_ONCE   XERUS_LOG_ONCE
 
#define LOG_SHORT   XERUS_LOG_SHORT
 
#define REQUIRE   XERUS_REQUIRE
 
#define SET_LOGGING   XERUS_SET_LOGGING
 

Functions

template<typename T , typename... Args>
std::unique_ptr< T > std::make_unique (Args &&... args)
 
template<class IteratorType , typename std::enable_if< std::is_same< typename std::iterator_traits< IteratorType >::difference_type, long >::value &&std::is_class< IteratorType >::value, bool >::type = true>
IteratorType std::operator+ (const IteratorType &_iterator, const size_t _add)
 Add a + operator for iterators and size_t to avoid signed/unsigned errors. More...
 
template<template< class, class... > class container_t, class item_t , class... rest_t>
container_t< item_t, rest_t... > std::operator| (const container_t< item_t, rest_t... > &_left, const container_t< item_t, rest_t... > &_right)
 : Concatenates two given cointainers. More...
 

Detailed Description

Header file for comfort functions and macros that should not be exported in the library.

Note
this may only be used in cpp files and must NOT be included in any library header!

Definition in file internal.h.

Macro Definition Documentation

◆ CHECK

#define CHECK   XERUS_CHECK

Definition at line 34 of file internal.h.

◆ IF_CHECK

#define IF_CHECK   XERUS_IF_CHECK

Definition at line 35 of file internal.h.

◆ IF_NO_CHECK

#define IF_NO_CHECK   XERUS_IF_NO_CHECK

Definition at line 36 of file internal.h.

◆ INTERNAL_CHECK

#define INTERNAL_CHECK   XERUS_INTERNAL_CHECK

Definition at line 37 of file internal.h.

◆ IS_LOGGING

#define IS_LOGGING   XERUS_IS_LOGGING

Definition at line 41 of file internal.h.

◆ LOG

#define LOG   XERUS_LOG

Definition at line 38 of file internal.h.

◆ LOG_ONCE

#define LOG_ONCE   XERUS_LOG_ONCE

Definition at line 40 of file internal.h.

◆ LOG_SHORT

#define LOG_SHORT   XERUS_LOG_SHORT

Definition at line 39 of file internal.h.

◆ REQUIRE

#define REQUIRE   XERUS_REQUIRE

Definition at line 33 of file internal.h.

◆ SET_LOGGING

#define SET_LOGGING   XERUS_SET_LOGGING

Definition at line 42 of file internal.h.

Function Documentation

◆ make_unique()

template<typename T , typename... Args>
std::unique_ptr<T> std::make_unique ( Args &&...  args)

Definition at line 49 of file internal.h.

◆ operator+()

template<class IteratorType , typename std::enable_if< std::is_same< typename std::iterator_traits< IteratorType >::difference_type, long >::value &&std::is_class< IteratorType >::value, bool >::type = true>
IteratorType std::operator+ ( const IteratorType &  _iterator,
const size_t  _add 
)

Add a + operator for iterators and size_t to avoid signed/unsigned errors.

Definition at line 64 of file internal.h.

◆ operator|()

template<template< class, class... > class container_t, class item_t , class... rest_t>
container_t<item_t, rest_t...> std::operator| ( const container_t< item_t, rest_t... > &  _left,
const container_t< item_t, rest_t... > &  _right 
)

: Concatenates two given cointainers.

Definition at line 73 of file internal.h.