mavtables  0.2.1
MAVLink router and firewall.
Public Member Functions | Friends | List of all members
RecursionData Class Reference

#include <RecursionData.hpp>

Collaboration diagram for RecursionData:
Collaboration graph

Public Member Functions

 RecursionData ()=default
 
 RecursionData (const RecursionData &other)
 
 RecursionData (RecursionData &&other)
 
RecursionDataoperator= (const RecursionData &other)
 
RecursionDataoperator= (RecursionData &&other)
 

Friends

class RecursionGuard
 

Detailed Description

A data structure used by RecursionGuard to detect unwanted recursion.

Note
While RecursionData supports copy and move semantics both with constructors and assignment operator, a recursion data structure should never change instance. One way to deal with this would have been to delete these operators but this would force users to manually implement copy and move semantics for their classes. Therefore, RecursionData will always make a new data structure on copy, move or assignment, allowing default copy and move constructors/assignment operators to be created for classes containing a RecursionData instance.

Definition at line 39 of file RecursionData.hpp.

Constructor & Destructor Documentation

◆ RecursionData() [1/3]

RecursionData::RecursionData ( )
default

◆ RecursionData() [2/3]

RecursionData::RecursionData ( const RecursionData other)
inline

Definition at line 45 of file RecursionData.hpp.

◆ RecursionData() [3/3]

RecursionData::RecursionData ( RecursionData &&  other)
inline

Definition at line 49 of file RecursionData.hpp.

Member Function Documentation

◆ operator=() [1/2]

RecursionData& RecursionData::operator= ( const RecursionData other)
inline

Definition at line 53 of file RecursionData.hpp.

◆ operator=() [2/2]

RecursionData& RecursionData::operator= ( RecursionData &&  other)
inline

Definition at line 59 of file RecursionData.hpp.

Friends And Related Function Documentation

◆ RecursionGuard

friend class RecursionGuard
friend

Definition at line 41 of file RecursionData.hpp.


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