しるふぃずむ

どうもプログラマです。好きなものはC#とジンギスカンです。嫌いなものはJava。プログラムおもちろいね。

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

コンパイラのビルドオプションメモ

新しいのでビルドしなおした時に調べ直すのが面倒だったのでメモ. gccは-vオプションで出力してくれますけど,clangは自身が作られた時のオプションどこかで見れないんですかね.

min_element + indexed

こんなコードを書きたかった. auto min = boost::min_element(rng | boost::adaptors::indexed(0), pred); // error auto i = min.index(); Rangeが何であれindexedを通すとSinglePassRangeになってしまうんですね. でもってmin_elementは比較のために複数…

fusion::transformが動かない

transform_viewは生成できますがそこから何してもエラー. 戻り値型の推論でこけてるみたいだけれど,さっぱりわかりません. 何か変な勘違いしてますかねえ…保留. int main(int, char*[]) { struct str { template<typename T> auto operator()(T const& x) const -> s</typename>…

unpack演算子

C++

tupleの型操作がうまく簡単に書けなくて,ヒントを探していたら見かけた typename Func<Seq>::type... という記法に目が飛び出ました. packされたままメタ関数に渡して戻り型をunpackなんてできたんですね… 通りで,やろうとしても激しくメタメタしくなるわけで</seq>…

lvalue/rvalueに応じて挙動を変える

C++

range adaptorを作ろうとしてるときに考えていたのが発端. 与えたrangeから何かしら別のrangeを作って返すようなことがしたい時,既に存在するrangeを渡すこともあればboost::irangeなんかで作ったrvalue refなrangeを渡したくなることもあります. パラメ…

型名demangle走り書き

型名には限らないんでしょうけど。 そのうちちゃんと関数にしておきましょうかね。 #include <cxxabi.h> auto demangle = [](const char* str) -> const char* { static int sta; return abi::__cxa_demangle(str, 0, 0, &sta); }; cout << demangle(typeid(ごにょごに</cxxabi.h>…

3回連続でProblem16になっていた

タイトルだけそのままでした. コピペの罠.

Problem 18

ProjectEuler_cpp/problem018.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Problem 17

ProjectEuler_cpp/problem017.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Problem 16

ProjectEuler_cpp/problem016.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Problem 15

ProjectEuler_cpp/problem015.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Qt4をいじってみる

NativeなC++で手軽にGUIを記述できるようになりたい。 チュートリアルを動かしてみていますが、 Qt3以前のままの古い記述が多くそのまま動かないものばかり。 サボってないで英語の情報探さなきゃ効率悪そうですね。

サブ機リニューアル

Ubuntuを入れていたサブPCの7年ものの電源が逝ってしまったようで, 不便なのでそこだけ交換して…とおもいきや. DELLのBTOから色々いじっていたものだったんですが電源が独自規格のものらしく, 簡単に手にはいりそうにないのでケースその他安いのを買って…

クイックソート

C++

クイックソート - 西尾泰和のはてなダイアリーを見かけたので書いてみました. Ideone.com - xIKQ6 - Online C++0x Compiler & Debugging Tool

環境判定マクロ

環境判定専用というより各コンパイラのバージョンを定義するもの. MSVC _MSC_VER GCC __GNUC__

range adaptorまとめ

まだ結構な頻度でこういうのあるんだっけ?ってなるのでリファレンスから引っ張ってきてメモ。

boost::iteration + boost::adaptors::taken_while

boostタグつけてますがそのものではなくOvenToBoostプロジェクトの話.

Problem 14

ProjectEuler_cpp/problem014.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Range io用アダプタ

C++

http://d.hatena.ne.jp/faith_and_brave/20120530/1338361580 を見て便利そうに思えたので,自分用に動けばいいや程度に作りました.

Problem 13

https://github.com/YuhSylphy/ProjectEuler_cpp/blob/master/problem013.cpp

多倍長演算

C++

libyuh_cpp/bignum.h at master · YuhSylphy/libyuh_cpp · GitHub libyuh_cpp/bignum.cpp at master · YuhSylphy/libyuh_cpp · GitHub Project Eulerで64bit以上の整数演算に出会ったので.

追記

よく考えたら約数そのものを算出する必要は無いので 素数の個数から約数の個数だけを出したら一桁落ちました. time : 173448 μs answer : 76576500

Problem 12

ProjectEuler_cpp/problem012.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

range based forと一時オブジェクト

C++

expression部分のオブジェクトの寿命で引っかかって解決策を調べてたらそんな議論が. 2008-02-27 - Cry’s Diary(コメント欄)

リンク順

C++

google test,今は最後に編集したテストが下に来るよう make時にls -tを使って時系列順にしてるんですが 以前書いた素数列生成器用のテストがリンク順によってコケるようです. 一度判定した素数を入れてあるvectorが解放されてしまっている…? 追記 →素数用…

スレッド終了待ちのタイミング

C++

これ,解決しました. 通りすがりさんに感謝です.

multiset map

C++

素因数分解をした結果の取り扱い方を考えてます.

Problem 11

ProjectEuler_cpp/problem011.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Problem 8

ProjectEuler_cpp/problem008.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub

Problem 6

ProjectEuler_cpp/problem006.cpp at master · YuhSylphy/ProjectEuler_cpp · GitHub