15#ifndef LIEF_ASM_AARCH64_OPERAND_H
16#define LIEF_ASM_AARCH64_OPERAND_H
42 std::ptrdiff_t, Operand*, std::unique_ptr<Operand>>
69 std::unique_ptr<details::OperandIt> impl_;
85 static_assert(std::is_base_of<Operand, T>::value,
86 "Require Operand inheritance");
87 if (T::classof(
this)) {
88 return static_cast<const T*
>(
this);
97 create(std::unique_ptr<details::Operand> impl);
100 LIEF_LOCAL const details::Operand& impl()
const {
101 assert(impl_ !=
nullptr);
107 assert(impl_ !=
nullptr);
118 std::unique_ptr<details::Operand> impl_;
Iterator(Iterator &&) noexcept
Iterator(std::unique_ptr< details::OperandIt > impl)
Iterator & operator=(const Iterator &)
Iterator(const Iterator &)
details::OperandIt implementation
Definition aarch64/Operand.hpp:45
std::unique_ptr< Operand > operator*() const
This class represents an operand for an AArch64 instruction.
Definition aarch64/Operand.hpp:36
friend std::ostream & operator<<(std::ostream &os, const Operand &op)
Definition aarch64/Operand.hpp:111
std::string to_string() const
Pretty representation of the operand.
const T * as() const
This function can be used to down cast an Operand instance:
Definition aarch64/Operand.hpp:84
CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of ...
Definition iterators.hpp:590
Definition aarch64/Operand.hpp:30
AArch64 architecture-related namespace.
Definition aarch64/Instruction.hpp:27
Namespace related to assembly/disassembly support.
Definition Abstract/Binary.hpp:47
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:41
#define LIEF_LOCAL
Definition visibility.h:42