Go to the documentation of this file.
22 #ifndef ASTSHIM_TRANMAP_H
23 #define ASTSHIM_TRANMAP_H
61 :
Mapping(reinterpret_cast<AstMapping *>(astTranMap(const_cast<AstObject *>(map1.
getRawPtr()),
62 const_cast<AstObject *>(map2.
getRawPtr()),
63 "%s", options.c_str()))) {
81 std::shared_ptr<Mapping>
operator[](
int i)
const {
return decompose<Mapping>(i,
false); };
84 std::shared_ptr<TranMap>
copy()
const {
return std::static_pointer_cast<TranMap>(
copyPolymorphic()); }
88 return copyImpl<TranMap, AstTranMap>();
92 explicit TranMap(AstTranMap *rawptr) :
Mapping(reinterpret_cast<AstMapping *>(rawptr)) {
94 std::ostringstream os;
95 os <<
"this is a " <<
getClassName() <<
", which is not a TranMap";
96 throw std::invalid_argument(os.str());
std::shared_ptr< TranMap > copy() const
Return a deep copy of this object.
Definition: TranMap.h:84
TranMap(AstTranMap *rawptr)
Construct a TranMap from a raw AST pointer.
Definition: TranMap.h:92
TranMap & operator=(TranMap const &)=delete
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
std::shared_ptr< Mapping > operator[](int i) const
Definition: TranMap.h:81
TranMap & operator=(TranMap &&)=default
virtual ~TranMap()
Definition: TranMap.h:67
std::string getClassName() const
Definition: Object.h:139
TranMap(TranMap const &)=default
Copy constructor: make a deep copy.
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: TranMap.h:87
TranMap(TranMap &&)=default
AST wrapper classes and functions.
Definition: attributes_channel.dox:1
TranMap(Mapping const &map1, Mapping const &map2, std::string const &options="")
Definition: TranMap.h:60
AstObject const * getRawPtr() const
Definition: Object.h:292