No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 1225 | 1226 | 1227 |...| 1307 | 1308 | 1309 || Next»

学位記

無事に修士がもらえたのでめでたしめでたし.学位記の入れ物(?)が学士のときと比べてグレードダウンしてたのが少々気になるが…

スピンジャンプオンリーで

迷いの森手前の城をクリア可能なことが実機で確認できた.とはいえ,最後の3回連続ジャンプはマリオ20人あたり1回しか成功しなかったけど…

変なコード?

g++ (GCC) 3.3.5-20050130 (Gentoo 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1) で以下のコードがエラー無くコンパイルされた.3.4.4 とか VC++ (VS.NET 2005) ではコンパイルできなかったのに…

#include <iostream>
#include <string>
 int main(int argc, char *argv[])
{
    for({std::cout << "Hello?" << std::endl; std::cout << "world?" << std::endl; } 0 ; 0) { std::cout << "loop?" << std::endl; }
    return 0;
}

誤字など

「ユビキタス」を「ユキビタス」と言う人間がどの程度いるのだろうかと google で検索したら 誤字等の館 というものが引っかかった.結構面白いかも.

Haskell の導出インスタンス

data と newtype の宣言で deriving つけたらインスタンスが自動生成されることを始めて知った… Eq、Ord、Enum、 Bounded、Show、 Read に対して使えるようでかなり手間が省ける.

あまり見ない C++ コード

ひとつ目.switch の後に { } がない(switch の意味が無いが…).return でカンマ区切りの式.throw がカンマ区切りをともなってネスト.

#include <iostream>
int main(int argc, char *argv[])
{
    try {
        switch(argc) case 1 : return std::cout << "no argument!" << std::endl, 0, throw (1,throw 9,2), 1;
    } catch (int k) {
        std::cout << "cought exception: " << k << std::endl;
    }
    return 0;
}

どうやらこのコードでは 9 が投げられるらしい.

二つ目.Pointer to Member Function: .* and ->*

#include <iostream>
struct Base {
    virtual void f() {
        std::cout << "Base! " << std::endl;
    }
};
struct DerivedA : public Base {
    int k;
    DerivedA(int kk) : k(kk) {};
    void f() {  // オーバーライド
        std::cout << "DerivedA with k = " << k << std::endl;
    }
};
struct DerivedB : public Base {
};
int main(int argc, char *argv[])
{
    DerivedA *pobjA, objA(5);
    DerivedA objA2(3);
    DerivedB objB;
  
    typedef void (Base::*f_type)();
    f_type f_base = &Base::f;
   
    pobjA = &objA;
    (objA2.*f_base)();
    (pobjA->*f_base)();
    (objB.*f_base)();
}

なんに使えるのかよくわからないが,とりあえずちゃんとオーバライドした関数も呼ばれる.

«Prev || 1 | 2 | 3 |...| 1225 | 1226 | 1227 |...| 1307 | 1308 | 1309 || Next»
Search
Feeds

Page Top