2008-11-01から1ヶ月間の記事一覧

Boost C++ Libraryのお勉強その7

Boost.Enable_If 普通に使うとテンプレート関数あらゆる型を取るので、 それを制御するための仕組み。 ぱっと見使い方がわかりずらくて、まずenable_ifは引数に書くけどこれは宣言するだけで関数内では使わず、あくまでテンプレートの実体化の為に処理系が使…

Boost C++ Libraryのお勉強その6

連休中じゃ全然終わらなかった…。 Boost.Date_Time 時間クラス色々。boost_date_timeをリンクする事。 #include <iostream> #include <boost/date_time.hpp> int main(void) { boost::gregorian::date d(2008,boost::gregorian::Nov,24); std::cout << boost::gregorian::to_simple_string(d</boost/date_time.hpp></iostream>…

Boost C++ Libraryのお勉強その5

連休中には終わらなそう…。 Boost.Date_Time 時間クラス色々。boost_date_timeをリンクする事。 #include <iostream> #include <boost/date_time.hpp> int main(void) { boost::gregorian::date d(2008,boost::gregorian::Nov,24); std::cout << boost::gregorian::to_simple_string(d) << s</boost/date_time.hpp></iostream>…

Boost C++ Libraryのお勉強その4

Boost.ConceptCheck テンプレート引数として渡したものがコンパイル出来ないものの場合、分かりずらいコンパイルエラーとなるので、わかりやすくするための仕組み。どうしてもコンパイル出来ずに断念…。 Boost.Config boost自体を構築するためのもの?マニュ…

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::co</int></boost/circular_buffer.hpp></iostream>…

Boost C++ Libraryのお勉強その2

Boost.Bimap 双方向マップ。どんな場合に便利なのかちょっと思い浮かばない。 テンプレート引数を単純にintとかにせず、専用の型で包んで渡すと挙動を変えられるみたいで、パッケージ全体としてはやや大きめ。 #include <iostream> #include <boost/bimap.hpp> int main(void) { typedef</boost/bimap.hpp></iostream>…

Boost C++ Libraryのお勉強その1

Boost C++ Libraryもろくにシラネーのか。ったく何年C++で飯食ってると思ってんだ。…とか自分のboost知らなさ加減にイライラするのでお勉強。 そんなわけで連休中短期集中連載、aから始めるBoost C++ Library。都合により1.35.0で。(何でXubuntu8.10には1.3…

コンストラクタを持ったクラスを共用体に使うとどうなるのか

C++

#include <iostream> class Alfa { public: Alfa() { std::cout << __func__ << std::endl; } }; class Bravo { public: Bravo() { std::cout << __func__ << std::endl; } }; int main() { union { Alfa a; Bravo b; } u; return 0; } 答え:コンパイルエラー $ g++ u</iostream>…

メモリ計測の続き

シングルスレッドで計測 最初にやれという話もあるが…。 #include <cstdlib> #include <boost/thread.hpp> #include <boost/progress.hpp> const int number_of_processors = 4; const int number_of_elements = 50 * 1024 * 1024; template < int SIZE > class MemoryAccess { private: int * ptr; public: </boost/progress.hpp></boost/thread.hpp></cstdlib>…

Majestouch Tenkeyless かななし黒軸を買ってみた

自宅用に欲しくなったので、Majestouch Tenkeylessの2個目を買ってみた。かなあり茶軸を買うつもりで店に行ったものの、その場で急に黒軸を使ってみたくなり、かなで黒軸のあったかななしにする。 予想通りというか当然というか、茶軸に比べてかなりタッチが…

メモリアクセス速度をちょっと実測

先日Core2にくらべるとPhenomは圧倒的に遅いとか言われたので、本当の所どうなのか計測してみる。やったのは単純に4コア分のスレッドを用意してメモリアクセスするだけ。 メモリ取得してからスレッドに分割 スレッド分割した中でメモリ取得 メモリ取得して一…

排他版

http://ja.doukaku.org/comment/8000/他の言語でも割と気にしてなさそうに見えるのがあったので排他とかはほっといたのだが、スレッドセーフじゃないとコメントがついたようなので排他版。実は言語側や標準ライブラリ側で並列の機構をもってるやつは、全体的…

思いついちゃったので

http://ja.doukaku.org/comment/7997/こいつもマルチなプロセッサの環境だと擬似並列じゃないかも。

擬似並列実行

http://ja.doukaku.org/comment/7996/Erlangの得意分野のはずが、Smalltalkに2倍近い行数で負けてしまっている…。ごめんなさいarmstrong様、修練がたりませんでした…。

boost::threadで擬似並列処理

http://ja.doukaku.org/comment/7993/boost::threadが擬似並列なのかどうかは議論がわかれる所かもしれない。特にマルチコアだったりすると擬似じゃない気がする。

ドメイン工学とテンプレートメタプログラミングとインテンショナルプログラミング

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)作者: クシシュトフ・チャルネッキ,ウールリシュ・W・アイセンアッカ,津田義史,今関剛,朝比奈勲出版社/メーカー: 翔泳社発売日: 2008/04/23メディア: 大型本購入: 7人 クリック: 399回…

ECLでcompileするとcファイルが消える

test.cl test.c というファイルがある状態で、 ecl -compile test.cl とやると、test.cが消えてしまう。