Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality > Class Template Reference

#include <model_storage_item.h>

Inheritance diagram for operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >:
operations_research::math_opt::ModelStorageItem

Public Types

using IdType = ElementId<element_type>
 The typed integer used for ids.

Public Member Functions

 ModelStorageElement (ModelStorageCPtr storage, IdType id)
int64_t id () const
IdType typed_id () const
Public Member Functions inherited from operations_research::math_opt::ModelStorageItem
ModelStorageCPtr storage () const

Protected Member Functions

 ModelStorageElement (const ModelStorageElement &)=default
ModelStorageElementoperator= (const ModelStorageElement &)=default
 ModelStorageElement (ModelStorageElement &&)=default
ModelStorageElementoperator= (ModelStorageElement &&)=default
 ~ModelStorageElement ()=default
Protected Member Functions inherited from operations_research::math_opt::ModelStorageItem
 ModelStorageItem (ModelStorageCPtr storage)
 ModelStorageItem (const ModelStorageItem &)=default
ModelStorageItemoperator= (const ModelStorageItem &)=default
 ModelStorageItem (ModelStorageItem &&)=default
ModelStorageItemoperator= (ModelStorageItem &&)=default
 ~ModelStorageItem ()=default

Friends

template<typename H>
AbslHashValue (H h, const Derived &element)
template<ModelStorageElementEquality equality = generate_equality>
std::enable_if_t< equality==ModelStorageElementEquality::kWithEquality, bool > operator== (const Derived &lhs, const Derived &rhs)
template<ModelStorageElementEquality equality = generate_equality>
std::enable_if_t< equality==ModelStorageElementEquality::kWithEquality, bool > operator!= (const Derived &lhs, const Derived &rhs)
std::ostream & operator<< (std::ostream &ostr, const Derived &element)

Detailed Description

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
class operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >

Typed model storage item. All elemental types (Variables, LinearConstraint, ...) in the model derived from this. Some additional concepts are currently not typed (and derive from ModelStorageItem instead):

Definition at line 76 of file model_storage_item.h.

Member Typedef Documentation

◆ IdType

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
using operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::IdType = ElementId<element_type>

The typed integer used for ids.

Definition at line 79 of file model_storage_item.h.

Constructor & Destructor Documentation

◆ ModelStorageElement() [1/3]

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::ModelStorageElement ( ModelStorageCPtr storage,
IdType id )
inline

Definition at line 81 of file model_storage_item.h.

◆ ModelStorageElement() [2/3]

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::ModelStorageElement ( const ModelStorageElement< element_type, Derived, generate_equality > & )
protecteddefault

◆ ModelStorageElement() [3/3]

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::ModelStorageElement ( ModelStorageElement< element_type, Derived, generate_equality > && )
protecteddefault

◆ ~ModelStorageElement()

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::~ModelStorageElement ( )
protecteddefault

Member Function Documentation

◆ id()

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
int64_t operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::id ( ) const
inline
Todo
(b/395843100): Remove this, use typed_id() or typed_id().value() instead.

Definition at line 86 of file model_storage_item.h.

◆ operator=() [1/2]

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
ModelStorageElement & operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::operator= ( const ModelStorageElement< element_type, Derived, generate_equality > & )
protecteddefault

◆ operator=() [2/2]

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
ModelStorageElement & operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::operator= ( ModelStorageElement< element_type, Derived, generate_equality > && )
protecteddefault

◆ typed_id()

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
IdType operations_research::math_opt::ModelStorageElement< element_type, Derived, generate_equality >::typed_id ( ) const
inline

Definition at line 88 of file model_storage_item.h.

◆ AbslHashValue

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
template<typename H>
H AbslHashValue ( H h,
const Derived & element )
friend

Definition at line 91 of file model_storage_item.h.

◆ operator!=

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
template<ModelStorageElementEquality equality = generate_equality>
std::enable_if_t< equality==ModelStorageElementEquality::kWithEquality, bool > operator!= ( const Derived & lhs,
const Derived & rhs )
friend

Definition at line 105 of file model_storage_item.h.

◆ operator<<

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
std::ostream & operator<< ( std::ostream & ostr,
const Derived & element )
friend
Note
for unnamed elements, we print the element type and id, but we don't commit to the exect format.

Definition at line 111 of file model_storage_item.h.

◆ operator==

template<ElementType element_type, typename Derived, ModelStorageElementEquality generate_equality = ModelStorageElementEquality::kWithEquality>
template<ModelStorageElementEquality equality = generate_equality>
std::enable_if_t< equality==ModelStorageElementEquality::kWithEquality, bool > operator== ( const Derived & lhs,
const Derived & rhs )
friend

Definition at line 98 of file model_storage_item.h.


The documentation for this class was generated from the following file: