diff --git a/include/bx/foreach.h b/include/bx/foreach.h deleted file mode 100644 index 53a6dde..0000000 --- a/include/bx/foreach.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2010-2017 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bx#license-bsd-2-clause - */ - -#ifndef BX_FOREACH_H_HEADER_GUARD -#define BX_FOREACH_H_HEADER_GUARD - -#include "bx.h" - -namespace bx -{ - namespace foreach_ns - { - struct ContainerBase - { - }; - - template - class Container : public ContainerBase - { - public: - inline Container(const Ty& _container) - : m_container(_container) - , m_break(0) - , m_it( _container.begin() ) - , m_itEnd( _container.end() ) - { - } - - inline bool condition() const - { - return (!m_break++ && m_it != m_itEnd); - } - - const Ty& m_container; - mutable int m_break; - mutable typename Ty::const_iterator m_it; - mutable typename Ty::const_iterator m_itEnd; - }; - - template - inline Ty* pointer(const Ty&) - { - return 0; - } - - template - inline Container containerNew(const Ty& _container) - { - return Container(_container); - } - - template - inline const Container* container(const ContainerBase* _base, const Ty*) - { - return static_cast*>(_base); - } - } // namespace foreach_ns - -#define foreach(_variable, _container) \ - for (const bx::foreach_ns::ContainerBase &__temp_container__ = bx::foreach_ns::containerNew(_container); \ - bx::foreach_ns::container(&__temp_container__, true ? 0 : bx::foreach_ns::pointer(_container) )->condition(); \ - ++bx::foreach_ns::container(&__temp_container__, true ? 0 : bx::foreach_ns::pointer(_container) )->m_it) \ - for (_variable = *container(&__temp_container__, true ? 0 : bx::foreach_ns::pointer(_container) )->m_it; \ - bx::foreach_ns::container(&__temp_container__, true ? 0 : bx::foreach_ns::pointer(_container) )->m_break; \ - --bx::foreach_ns::container(&__temp_container__, true ? 0 : bx::foreach_ns::pointer(_container) )->m_break) - -} // namespace bx - -#endif // BX_FOREACH_H_HEADER_GUARD