しるふぃずむ

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

C++

仮想関数 + テンプレート

C++

出力用のoperatorを書いていて,ちょっとハマりました.[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ サブクラスで表示内容を変更したい(使う側はスーパークラスとしてのみ扱いたい) どうせなら各種ostreamに対応させたい と思ったんですが,「仮想メンバ関数テンプレー…

Boost.勉強会 #14 東京

Boost.勉強会 #14 東京 : ATND補欠から昇格できたようなので,ドキドキしつつ初参加します. 皆様どうぞよろしくお願いします.

Initializer lists

C++

「初期化リスト」. Ideone.com - YEX9jh - Online C++0x Compiler & Debugging Tool

Variadic Templates

C++

「可変個引数テンプレート」. Ideone.com - ht1gJp - Online C++0x Compiler & Debugging Tool

Non-static data member initializers

C++

非静的メンバ初期化子 Ideone.com - 6r5ja7 - Online C++0x Compiler & Debugging Tool

Initialization of Class Objects by rvalues

C++

「rvalueによるクラスオブジェクトの初期化」. Ideone.com - bcRKnw - Online C++0x Compiler & Debugging Tool

gcc,clang新バージョンリリース

先日(5/31),gcc4.8.1が出たようで. ついにリリースバージョンでC++11のコア機能が全て実装されました. clangの方が全機能の実装がコミットされたのは早かったように記憶してますが, リリースは先を越されたみたいですね. そのclangも3.3のリリースが6/5…

C++11新機能メモ

C++

ちまちま埋めてく.

Rvalue references

C++

「右辺値参照」 Ideone.com - 9GodmI - Online C++0x Compiler & Debugging Tool

configureが通らない現象,解決

clangのconfigure失敗 - yuhsylphyの日記,どうやら解決. いずれかのバージョンのclangがパスに残っているとそちらを使おうとしてしまい, Cのヘッダの幾つかが見つからなくなる様子. clangも自己をビルドできるようになった,って話のはずですけども…まあ…

Boost.Coroutine

色々終わったので1.53.0で追加されたライブラリをいじってみる。

カリー化

C++

何度となく議論の的になっているのをみかけているので、 自分なりの理解で書いてみました。 Ideone.com - WWpxwT - Online C++0x Compiler & Debugging Tool

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

新しいのでビルドしなおした時に調べ直すのが面倒だったのでメモ. 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>…

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以前のままの古い記述が多くそのまま動かないものばかり。 サボってないで英語の情報探さなきゃ効率悪そうですね。

クイックソート

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