openPMD-api
Public Member Functions | List of all members
openPMD::Attribute Class Reference

Variant datatype supporting at least all formats for attributes specified in the openPMD standard. More...

#include <Attribute.hpp>

Inheritance diagram for openPMD::Attribute:
Inheritance graph
[legend]
Collaboration diagram for openPMD::Attribute:
Collaboration graph
[legend]

Public Member Functions

 Attribute (resource r)
 
template<typename U >
get () const
 Retrieve a stored specific Attribute and cast if convertible. More...
 
template<typename U >
std::optional< U > getOptional () const
 Retrieve a stored specific Attribute and cast if convertible. More...
 
- Public Member Functions inherited from openPMD::auxiliary::Variant< Datatype, attribute_types >
 Variant (resource r)
 Construct a lightweight wrapper around a generic object that indicates the concrete datatype of the specific object stored. More...
 
get () const
 Retrieve a stored specific object of known datatype with ensured type-safety. More...
 
resource getResource () const
 Retrieve the stored generic object. More...
 
constexpr size_t index () const noexcept
 Retrieve the index of the alternative that is currently been held. More...
 

Additional Inherited Members

- Public Types inherited from openPMD::auxiliary::Variant< Datatype, attribute_types >
using resource = attribute_types
 
- Public Attributes inherited from openPMD::auxiliary::Variant< Datatype, attribute_types >
Datatype dtype
 

Detailed Description

Variant datatype supporting at least all formats for attributes specified in the openPMD standard.

Member Function Documentation

◆ get()

template<typename U >
U openPMD::Attribute::get

Retrieve a stored specific Attribute and cast if convertible.

Note
This performs a static_cast and might introduce precision loss if requested. Check dtype explicitly beforehand if needed.
Exceptions
std::runtime_errorif stored object is not static castable to U.
Template Parameters
UType of the object to be casted to.
Returns
Copy of the retrieved object, casted to type U.

◆ getOptional()

template<typename U >
std::optional< U > openPMD::Attribute::getOptional

Retrieve a stored specific Attribute and cast if convertible.

Like Attribute::get<>(), but returns an empty std::optional if no conversion is possible instead of throwing an exception.

Note
This performs a static_cast and might introduce precision loss if requested. Check dtype explicitly beforehand if needed.
Template Parameters
UType of the object to be casted to.
Returns
Copy of the retrieved object, casted to type U. An empty std::optional if no conversion is possible.

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