28 using add_pointer_t =
typename std::add_pointer<T>::type;
31 using decay_t =
typename std::decay<T>::type;
34 using add_const_t =
typename std::add_const<T>::type;
38 using output_t = add_pointer_t<decay_t<T>>;
41 using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>;
49 LIEF_LOCAL output_t<T> as();
52 LIEF_LOCAL output_const_t<T> as()
const;
54 virtual bool operator==(
const Object& other)
const;
55 virtual bool operator!=(
const Object& other)
const {
56 return !(*
this == other);
60 virtual void accept(
Visitor& visitor)
const = 0;