French:ポトフ

# 某所に引き摺られたわけではないことをここに明言させていただきます。

寒い日が続きますね。こういうときには鍋物など・・・。

というわけで、本日はポトフなど。

<材料>

  • ダシ
    • 鶏がら : 1羽
    • 野菜くず(にんじんのへた、葱の青いとこ、セロリの葉) : 適当
    • セージ、タイム、ローリエ : 少々
    • 水 : 4L
    • 牛ほほ肉 : 500g
    • てきとーソーセージ(今日はシャウエッセン) : 300g
    • 大根、にんじん、セロリ、ジャガイモ、たまねぎ : なべに突っ込めるだけ
    • ローリエ、塩コショウ : 少々

<つくりかた>

  • 一度、鶏がらを湯でこぼす(2%食塩水から沸騰させるまで煮て、湯を捨てる)
  • もう一度水(4L)をなべに張り、ダシの材料を全部突っ込んで沸騰させる
  • そのまま保温調理器に突っ込み一晩放置
  • ダシ殻を捨て、表面に浮いている油をとる(一度冷やして固めると容易)
  • だしを適当に漉す(気合があるときは布巾。ないときは網)
  • 牛ほほ肉をフライパンで表面だけ焼く
  • 実を適当に切る
    • にんじんは丸々を縦に二回
    • 大根は半分ほどを縦に適当に
    • セロリは手で適当にぶちぶちと
    • ジャガイモ、たまねぎは皮をむいて丸のまま
  • 実、ローリエをダシに突っ込んで沸騰させる
  • 塩を「ちょと薄味・・・」という程度に入れる
  • そのまま保温調理器に突っ込み半日放置
  • コショウを振りかけて完成

DSC01774

# セロリの葉っぱは「個人的に好き」なので突っ込んでます。

# ちょっとジャガイモが崩れましたが。まぁいいことにしましょう。

はい。出来たら皿に盛って、マスタードを添えていただきましょう。

お供は適当ボルドーワイン。

# うちの一番大きいなべは、たぶん一般家庭にはないサイズだと思ふ・・・。

C++:function-pointerとfunction-reference

昨日、アキラ大先生がつぶやいて曰く、

「void f(int) があるとき、Ovenの中身では f と &f が区別される」
<http://twitter.com/cpp_akira/status/7397358542>
<http://twitter.com/cpp_akira/status/7397772303>

…mjdsk…!

まずは、事態を把握するために適当実験…

#include <iostream>
#include <vector>
#include <pstade/oven/initial_values.hpp>
#include <pstade/oven/algorithm.hpp>

void show(int x) { std::cout << x << std::endl; }
int main()
{
const std::vector<int> v = pstade::oven::initial_values(1, 2, 3, 4, 5);
pstade::oven::for_each(v, &show); // OK
// pstade::oven::for_each(v, show); // NG
}

…うわぉ。


となると、OKとNGを腑分けるメカニズムが何ぞあるはずです。


Ovenの中身を覗いてピンと来たのが以下のコード。


// \pstade\egg\detail\meta_arg.hpp
/*略*/
// rvalue
template<class A>
struct meta_carg
{
typedef A const type;
};

// lvalue
template<class A>
struct meta_carg<A&>
{
typedef A const type;
};
/*略*/

ふむ。なんかごにょれば切り分けられそうな気がしてきたざます。


というわけでちょいちょいと。


#include <iostream>
template < class R >
void test( R(*)(void) )
{
std::cout << "function-pointer" << std::endl;
}

template < class R >
void test( R(&)(void) )
{
std::cout << "function-reference" << std::endl;
}

void f() {};

int main()
{
test( f ); // function-reference
test( &f ); // function-pointer
return 0;
}

…イケました。

あとはboost::type_traitsやらboost::mplやらに頑張っていただければコンパイルタイムにfunction-pointerとfunction-referenceを腑分けることができるはず…。


あけましておめでとうございます

ちょっと間が空いてしまいました。

# 自宅のネットワークがまだ整備出来てないので・・・
# 住んでいる場所柄、ケーブル引きにくいので、ちょっと交渉難航中。

あけましておめでとうございました。
本年もよろしくお願いいたします。


[今年の目標]
・ C++0x の仕様をアドホック会議に出てまともに議論できる程度には読む
 今出席しても単語の意味を質問するレヴェルなので
・ 英語アウトプット能力をインクリメント
 壇上で応答できる程度には・・・
・ フルマラソンサブスリー
 昨年の記録から-20分くらいで達成できるはず