15#ifndef LIEF_OBJC_CATEGORY_H
16#define LIEF_OBJC_CATEGORY_H
43 Category, std::ptrdiff_t, const Category*,
47 using iterator_facade_base::operator++;
48 using iterator_facade_base::operator--;
86 std::unique_ptr<details::CategoryIt> impl_;
87 mutable std::unique_ptr<Category> cached_;
CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of ...
Definition iterators.hpp:750
Definition iterators.hpp:603
std::unique_ptr< Category > yield()
Transfer ownership of the category at the current position to the caller. Returns nullptr if the iter...
Iterator(std::unique_ptr< details::CategoryIt > impl)
const Category * operator->() const
Iterator & operator=(const Iterator &)
Iterator(Iterator &&) noexcept
details::CategoryIt implementation
Definition Category.hpp:46
Iterator(const Iterator &)
const Category & operator*() const
This class represents an Objective-C category (e.g. @interface NSString (MyAdditions)).
Definition Category.hpp:39
std::string class_name() const
(demangled) name of the class extended by this category
iterator_range< Property::Iterator > properties_t
Iterator for the properties declared by this category.
Definition Category.hpp:98
std::string to_decl(const DeclOpt &opt=DeclOpt()) const
Generate a header-like string for this specific category.
properties_t properties() const
Iterator over the properties of this category.
std::string name() const
Name of the category.
iterator_range< Method::Iterator > methods_t
Iterator for the category's methods.
Definition Category.hpp:92
protocols_t protocols() const
Iterator over the different protocols adopted by this category.
Category(std::unique_ptr< details::Category > impl)
methods_t methods() const
Iterator over the different methods defined by this category.
iterator_range< Protocol::Iterator > protocols_t
Iterator for the protocols adopted by this category.
Definition Category.hpp:95
#define LIEF_LIFETIMEBOUND
Definition compiler_attributes.hpp:72
Definition Category.hpp:32
Namespace related to ObjC metadata.
Definition MachO/Binary.hpp:43
LIEF namespace.
Definition Abstract/Binary.hpp:41
This structure wraps options to tweak the generated output of functions like LIEF::objc::Metadata::to...
Definition DeclOpt.hpp:22
#define LIEF_API
Definition visibility.h:45