閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

2008-09-16から1日間の記事一覧

int* array; みたいなのを Boost.Range で扱いたい。

C++

ラップするしかないのだろうか。 #include <iostream> #include <algorithm> #include <boost/range.hpp> template<class T> class Array { size_t m_size; T* m_ptr; public: Array(T* ptr, size_t n) : m_ptr(ptr), m_size(n) {} typedef T* iterator; typedef T const* const_iterator; iterator begin() </class></boost/range.hpp></algorithm></iostream>…

typename

C++

boost::range_iteraotr<>::typeを使うとコンパイルが通らない。たとえば以下のprint関数。letsboost::range悩んだ末Boost.Rangeのドキュメントを読んだところtypenameが必要らしい。 template<typename Range> void print( Range& r ) { typename boost::range_iterator<Range>::typ</range></typename>…