22#ifndef ASTSHIM_CMPMAP_H
23#define ASTSHIM_CMPMAP_H
78 :
Mapping(reinterpret_cast<AstMapping *>(astCmpMap(const_cast<AstObject *>(map1.
getRawPtr()),
79 const_cast<AstObject *>(map2.
getRawPtr()),
80 series,
"%s", options.c_str()))) {
113 explicit CmpMap(AstCmpMap *rawptr) :
Mapping(reinterpret_cast<AstMapping *>(rawptr)) {
116 os <<
"this is a " <<
getClassName() <<
", which is not a CmpMap";
CmpMap(AstCmpMap *rawptr)
Construct a CmpMap from a raw AST pointer (protected instead of private so that SeriesMap and Paralle...
CmpMap & operator=(CmpMap const &)=delete
bool getSeries()
Return True if the map is in series.
CmpMap & operator=(CmpMap &&)=default
std::shared_ptr< CmpMap > copy() const
Return a deep copy of this object.
CmpMap(CmpMap const &)=default
Copy constructor: make a deep copy.
CmpMap(CmpMap &&)=default
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
CmpMap(Mapping const &map1, Mapping const &map2, bool series, std::string const &options="")
Construct a CmpMap.
std::shared_ptr< Mapping > operator[](int i) const
Return a shallow copy of one of the two component mappings.
Mapping(Mapping const &)=default
Copy constructor: make a deep copy.
std::shared_ptr< Class > decompose(int i, bool copy) const
Return a deep copy of one of the two component mappings.
std::shared_ptr< T > copyImpl() const
Implementation of deep copy.
std::string getClassName() const
Get Class: the name of the class (e.g.
AstObject const * getRawPtr() const
Get the raw AST pointer.
bool isSeries(AstCmpMap const *cmpMap)
Return true if the compound map is in series.
AST wrapper classes and functions.
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.
T static_pointer_cast(T... args)