15 #ifndef Om_Language_DefaultElement_
27 typename ThisImplementation, \
28 typename ThisInterface \
32 Om::Language::DefaultElement< \
40 inline Type_::~DefaultElement() {}
43 inline bool Type_::Equals(Element
const & theElement)
const {
45 typeid(theElement) ==
typeid(ThisImplementation)
48 dynamic_cast<ThisImplementation
const *
>(
this) &&
49 dynamic_cast<ThisImplementation
const *
>(&theElement)
51 return static_cast<ThisImplementation
const &
>(*this).Equals(
52 static_cast<ThisImplementation
const &
>(theElement)
64 > Type_::GetElementRange() {
75 > Type_::GetElementRange()
const {
84 inline void Type_::GiveElements(Consumer & theConsumer) {
86 dynamic_cast<ThisImplementation *
>(
this)
91 theConsumer.TakeElement(
92 static_cast<ThisImplementation &
>(*
this)
98 inline void Type_::GiveElements(Consumer & theConsumer)
const {
100 dynamic_cast<ThisImplementation
const *
>(
this)
105 theConsumer.TakeElement(
106 static_cast<ThisImplementation
const &
>(*
this)
Any object that items can be pulled from.