Boost C++ Libraryのお勉強その3
Boost.CircularBuffer
いわゆるリングバッファ。
#include <iostream> #include <boost/circular_buffer.hpp> int main(void) { boost::circular_buffer<int> cb(3); cb.push_back(0); cb.push_back(1); cb.push_back(2); std::cout << cb[0] << cb[1] << cb[2] << std::endl; cb.push_back(3); std::cout << cb[0] << cb[1] << cb[2] << std::endl; return 0; }
012 123
Boost.Compatibilty
brokenなcompilerやlibraryのための互換性確保について色々。あまり興味ないので飛ばす。
Boost.CompressedPair
empty base-class optimizationをしてくれるpair。うれしい人にはうれしいのかもしれない。
#include <iostream> #include <utility> #include <boost/compressed_pair.hpp> class Empty {}; int main(void) { std::cout << sizeof(std::pair < Empty, long long >) << std::endl; std::cout << sizeof(boost::compressed_pair < Empty, long long >) << std::endl; return 0; }
16 8