説明を見る。00001 #include "osl/container/moveStack.h"
00002 #include "osl/csa.h"
00003 #include <iostream>
00004
00005 osl::MoveStack::MoveStack()
00006 {
00007 data.reserve(16);
00008 clear();
00009 }
00010
00011 osl::MoveStack::~MoveStack()
00012 {
00013 }
00014
00015 void osl::MoveStack::reserve(size_t capacity)
00016 {
00017 data.reserve(capacity);
00018 }
00019
00020 void osl::MoveStack::clear()
00021 {
00022 data.clear();
00023 data.push_back(Move::INVALID());
00024 data.push_back(Move::INVALID());
00025 }
00026
00027 #ifndef MINIMAL
00028 void osl::MoveStack::dump(std::ostream& os, size_t last_n) const
00029 {
00030 const size_t start = (last_n == 0) ? 0 : size() - last_n;
00031 os << "move stack";
00032 vector_t::const_iterator p=data.begin();
00033 ++p;
00034 for (size_t i=0; p!=data.end(); ++p, ++i)
00035 {
00036 if (i < start)
00037 continue;
00038 os << " " << csa::show(*p);
00039 }
00040 os << "\n";
00041 }
00042
00043 void osl::MoveStack::dump(size_t last_n) const
00044 {
00045 dump(std::cerr, last_n);
00046 }
00047 #endif
00048
00049
00050
00051