しるふぃずむ

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

2012-12-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