2010-08-01から1ヶ月間の記事一覧

カウンタ 〜その4〜

C++

一応、形にはなったのでうp。 基本的な使い方は以下の通り。 #include <assert.h> #include "counter.hpp" #include "counter_compare.hpp" int main(){ // 増減値を設定したり、最大最小の設定が出来る基本的なカウンタ counter<int> basic_counter(0); // int 型の値をカ</int></assert.h>…

アクセスカウンター

そういえばアクセス数ってどこで確認出来るんだろうか。 以前、アクセス数を調べた時は管理ページですぐに見れた気がするんだけども 今は、有料のアクセス解析しかないのかな? アクセス数はブログのモチベーションのつながるから結構気になるんだけどなぁ。…

boost::tuple で for_each のような処理

for_each のように各値に対して捜査するような処理が欲しかったので書いてみた。 #include <assert.h> #include <boost/tuple/tuple.hpp> namespace detail{ template<int N> struct int2type{ static const int value = N; }; using boost::tuples::length; template<typename tuple_t, typename F, int index> void tuple_for_each_impl(tuple</typename></int></boost/tuple/tuple.hpp></assert.h>…

boost::tuple

#include <assert.h> #include <boost/tuple/tuple.hpp> int main(){ using boost::tuple; namespace tuples = boost::tuples; tuple<int, float, char> hoge(20, 3.14f, 'w'); assert( hoge.get<0>() == 20 ); assert( hoge.get<1>() == 3.14f ); assert( hoge.get<2>() == 'w' ); typedef tuple<int, float, double> my_t…</int,></int,></boost/tuple/tuple.hpp></assert.h>

boost のサンプルコード概要

★概要 boost の勉強がてらサンプルコードでもうpする作業。 既存のサンプルコードやネットで調べたものから目コピする予定なので、 ところどころ被ってるかも知れませんが自分の勉強の為なので気にしない方向で。 ★目標 1日1個ぐらい書きたいけど多分無理な…

カウンタ 〜その3〜

C++

続きです。 今回は、上下限値の処理。 前回やった加算処理は割愛。 #include <assert.h> struct non_checker{ template<typename T> void operator ()(T&){} }; template< typename ValueType, typename MaxChecker = non_checker, typename MinChecker = non_checker > struct cou</typename></assert.h>…

カウンタ 〜その2〜

この前の続きです。 #include <iostream> #include <assert.h> template< typename ValueType > struct counter_impl{ typedef ValueType value_t; counter_impl(const value_t& v) : value_(v){} const value_t& value() const{ return value_; } void value(const value_t& src</assert.h></iostream>…

カウンタ〜その1〜

その2があるかは不明ですが…。 行き詰まったのでちょっとまとめてみた。 <概要>・保持している値に対して、加算、減算の処理を行う <機能>・一定の値の増減処理(インクリメントやデクリメント) ・ある一定の値になった時の処理(上限値や下限値の設定…

この間のラジアン変換の続き

melponさん: 誤差に関しては、value_t を float ではなく boost::rational にすればうまくいくかもしれませんね。 なコメントを頂いたのでやってみた訳ですが、 結論から言うと無理でした。\(^o^)/ boost::rational つまり、有理数で値を保持する場合、 (…

魔導書に触発されてRadian⇔Degree変換をやってみた

主に56ページ辺りに触発されて。 #include <iostream> #include <assert.h> namespace std{ template<int N, int D = 1> class ratio{ public: static const int num = N; static const int den = D; }; } template< typename ratio1, typename raito2, typename value_t = float > struct angle{ a</int></assert.h></iostream>…