#ifndef V8_CODEGEN_REGLIST_BASE_H_
#define V8_CODEGEN_REGLIST_BASE_H_
#include <cstdint>
#include <initializer_list>
#include "src/base/bits.h"
#include "src/base/iterator.h"
#include "src/base/template-utils.h"
namespace v8 {
namespace internal {
class Register;
template <typename RegisterT>
class RegListBase { … };
template <typename RegisterT>
class RegListBase<RegisterT>::Iterator
: public base::iterator<std::forward_iterator_tag, RegisterT> { … };
template <typename RegisterT>
class RegListBase<RegisterT>::ReverseIterator
: public base::iterator<std::forward_iterator_tag, RegisterT> { … };
template <typename RegisterT>
typename RegListBase<RegisterT>::Iterator RegListBase<RegisterT>::begin()
const { … }
template <typename RegisterT>
typename RegListBase<RegisterT>::Iterator RegListBase<RegisterT>::end() const { … }
template <typename RegisterT>
typename RegListBase<RegisterT>::ReverseIterator
RegListBase<RegisterT>::rbegin() const { … }
template <typename RegisterT>
typename RegListBase<RegisterT>::ReverseIterator RegListBase<RegisterT>::rend()
const { … }
template <typename RegisterT>
inline std::ostream& operator<<(std::ostream& os,
RegListBase<RegisterT> reglist) { … }
}
}
#endif