にゃははー

はへらー

2011-01-01から1年間の記事一覧

std::futureで未来に生きる

C++

非同期にスレッドを走らせたい時、そしてその戻り値を取りたい時にstd::futureを使うといいです。なお、4.7.0 20110510(experimental)時点でlibstdc++のthreadはデフォルトでstd::this_threadの関数が使えません。先頭の2つのdefineはそれらを有効化するた…

GNATのインストールがうまくいかない

やっぱGNU makeはいろいろやばい もうおわこんだろ・・・というのもGNATのビルドプロセスを追ってみればわかる。例えばGCC 4.4が入ってる環境でGCC 4.5をビルドしようとする。ちなみに各コマンドは同一シェル内で実行する。 あと、4.4のインストールされてい…

詳細は明日とか言っときながら全然書いてなかったけど明日を定義してなかったから問題なかった

ということでとりえあえずTrance.Configの説明 http://d.hatena.ne.jp/Flast/20110506/1304696074 ファイルは https://github.com/Flast/trance/blob/master/trance/config.hpp です細かい説明が面倒なんで、Boost.Configのdoc Macros that describe possibl…

library Trance.Config is new Boost.Config with record ... end record;

https://github.com/Flast/trance/blob/master/trance/config.hppつかれた・・・ 詳細は明日・・・

Trance.TypeInfoを改良

https://github.com/Flast/trance/blob/master/trance/typeinfo.hpp といっても http://d.hatena.ne.jp/RiSK/20110504/1304495091 をもとにデマングル失敗時に例外を投げるように修正する程度ですが。あと、TRANCE_TYPEIDを修正してconst prvalueを返すよう…

Boost.Configぅぅぅぅぅぅぅぅぅっぅ

Boost.ConfigにはBOOST_NO_*といったコンパイラ対応等に関するマクロがありますが、これには問題があります。 例えば #include <boost/config.hpp> void hogehoge() #if !defined( BOOST_NO_NOEXCEPT ) noexcept #endif { fugafuga ... } のようなソースを書いたとき、BOOST_NO</boost/config.hpp>…

trance/typeinfo.hppは壊滅的に使いづらいだろうことは自明なので

xvalue(prvalue)つくりまくるバージョンの楽につかえるやつを追加しました。 #include <iostream> using namespace std; #include <trance/typeinfo.hpp> int main() { cout << TRANCE_TYPEID( int ).demangled_name() << endl << TRANCE_TYPEID( 0 ).demangled_name() << endl; } で、 int </trance/typeinfo.hpp></iostream>…

なぜ今Adaを始めるのか

Ada

今ッ!!1111Adaが熱いッ111111なんと強い静的型付けでありながら実行時に型の検査を行う!!! こんな感じ procedure hoge is type Positive is new Integer range 1 .. Integer'Last; -- 型に対して取りうる値の制約をかけれるから -- Constant_Error…

エスケープシーケンス(端末の)とか使えたらいいなー

って感じでちまちま書いてる。https://github.com/Flast/trance/tree/manip/trance/iostreams使い方は #include <iostream> #include <trance/iostreams/escape_sequence.hpp> int main() { std::cout << trance::iostreams::red << "red!!" << trance::iostreams::reset << std::endl; } って感じreset呼ばな</trance/iostreams/escape_sequence.hpp></iostream>…

【備忘録】gccのサーチパス

GCC

いろいろ調べても$INCLUDEにズラズラ書けばできる的なことが書いてあったけど上手く引っ張れなかったので window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t;…

GMPのラッパー

gmpxxが非常に残念だという話を博士課程の方から聞いたので薄いラッパーを書いてみてる。 まだ初等関数部分はラップしてないけど基本的な演算ならできるはず。https://github.com/Flast/trance/tree/gmp/trance/gmpまだmpz_tのラップしか出来てないけどその…

gccのミラーに登録されました。

http://ftp.tsukuba.wide.ad.jp/software/gcc大元から引っ張ってこようとすると結構遅いので使ってみるといいかも? そとからどれぐらい出るかしらんけど...あと、なんかミラーして欲しいのがあったら「やれやゴルァ」って言ってもらえれば頑張るかも。

trance/typeinfo.hppを修正

今までのは int i = 0; TRANCE_TYPEID_BY_EXPR( i++ ); cout << i << endl; とすると1が表示されてしまっていました。 これは非常にまずいので、修正しました。現在の実装だと上のコードを実行しても0が表示されるようになっています。

type_infoのラッパー

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

GCCのミラーを準備中...

タイトルのとおりです。現在日本は2箇所(ftp.dti.ad.jpとring.etl.go.jp)が登録されてますが、私の手元ではring.etl.go.jpさんが応答してくれないので実質1箇所になってるのでしょうか。 今後のC++0xの普及速度を鑑みてやはりここはミラーを建てる時だと…

vim73とgcc46は徹底的に相性が悪いようだ...

2010-12-24 - Flast?なにそれ、おいしいの? 2010-09-06 - Flast?なにそれ、おいしいの? でも取り上げてるvim7.3とGCC4.6の相性は更に悪くなった :set nrformats+=alpha を実行してもらいたい。見事に $ vim Error detected while processing /home/flast…

C++03向け局所関数

C++

まぁ誰でも思いつくような奴だけど忘れない様にメモ https://github.com/Flast/trance/blob/master/trance/local_function.hpp #define PP_CAT( x, y ) x ## y #define FUNCTOR_NAME PP_CAT( _unnamed_local_function, __LINE__ ) #define LOCAL_FUNCTION( _…

さくらのVPS1Gを試してみるので

こないだリリースされたXen4.1をいれて人柱になることにした。インストール等自体は4.0.1の時*1と同じで、特に何かあったわけでなかった。1箇所引っかかるところと言えばインストールを行ってxenカーネルでdom0を起動するとxendがinitで上がりきれていないこ…

vimをISO C(90or99)で書き直すプロジェクトをやろうと思うんだけど

ひとりだといろいろアレ♂なので、だれか賛同者が1,2人欲しい... 最終的にはメインラインに乗ると嬉しいんだけどな...ちなみに今のvim7.3はGCC4.6でコンパイルするとバイナリは出来るけど行削除とか(多分ヤンクまわり)で死にます。なので、C99=>GCC4.6の順に…

decltype微妙な嵌りどころ

C++

あとで増えるかも,sizeof,alignof,typeidとかも同じような制約受けるかも なんかスコープの扱いが本体のみになってて、宣言には適用されない仕様っぽい。FDISも決まったから多分このままなんだろうな...型推論時にthisが使えない https://ideone.com/22zkgfr…

さりげない追加

Boost 1.46.1あたりからでしょうかbjamをコンパイルするとbjamと一緒にb2という全く同一のバイナリが生成されるようになりました。 2文字削ることに命かけているひとには嬉しい追加ですね(謎 - 3/31 追記 どうやら1.46.1では入っていない様です。1.47から入…

ちょっとよくわからない挙動

lambdaについて調べてたら・・・ - にゃははー にも書いたやつが一向に加筆修正されないからよくわからん。GCCはg5のようなコードをrejectするけどiが参照出来てしまっているのは問題なはず。 それともsizeof operatorだけ(あとその類)だけは例外?ちょっと…

ISの収録現場とかハーレム状態って実は

IS(インフィニット・ストラトス)の収録現場がハーレム状態ということでいろいろ言われてたりするけど、集合写真とか見るとマジ一夏がかわいそうに見えてくる...恐怖だよな...あと、今女性専用車ってあるじゃん?あれできたとき『なんて不公平な』とは思いは…

うーん

いろいろ書こうと思ってたけど、二週間も何もしないといろいろダメになる。GCC...

BOOST_ROOTからライブラリを引っ張ってくる(失敗

普段は/usr/local/lib/の下のバイナリを-lboost_unit_test_frameworkで引っ張ってくるんだけど、出来たらuse-projectからリンクしたんだけどな…ってことで簡単に書くと import os ; BOOST_ROOT = [ os.environ BOOST_ROOT ] ; use-project /boost : $(BOOST_…

bjamに渡されるコマンドライン引数を取得する

例えばコマンドライン引数が必要になったとしよう、どうすればいいだろうか。 modulesモジュールが解決してくれる。 import modules ; .argv = [ modules.peek : ARGV ] ; ECHO $(.argv) ; とある場合、bjam hogeと実行するとそのままbjam hogeと出力された…

デザイン変えた

自分で言うのもなんですが、今までのは見にくかった (゜Д゜ハァ? と思うフシがあったのでデザイン変えました。明るいのは嫌いなんですけどはてなの暗めデザインはなんかあれだったのでまぁいいや。

range-based forのrange_traits派が弱いのでなんとかしたい

C++

いや、別に規格が使わないって言ったら私は従いますよ。みなさんがADL使ってるように。

bjamで作ったバイナリを実行する

@manga_osyoとこんなやりとりがあった window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platfor…

いいぜ、てめぇがすまふぉ最強とか思ってるなら、まずはそのふざけたiPhone3Gをぶち殺す

あいふおん死んでる 完全に死んでるこれ 最高にcoolいままさに電話しようとしている、メールしようとしているそこのあなた!もしかして相手は090-6271-0464とかflast-ac.tsukuba@i.softbank.jpとかじゃないですか? それDestination Host Unreachableですよ…