auto論争

melpon

auto論争

auto論争(脳内)

auto

使う派

使わない派

どっち?

その前に

誰でも納得するケース

        auto f = [&n](int v) { v + n; };
    

ラムダ式

        auto s = str_p("Bo") >>
           +ch_p('o') >>
                  "st.Spirit";

とても長い型

        auto h = new Hoge();
    

自明

ケンカが起きるケース

        std::vector<std::vector<int>> v = f();
auto v = f();

「auto使えよ」

        int v = f();
auto v = f();

「auto使うなよ」

お互いの主張

auto使わない派

型があった方が読みやすい

タイプ数を増やすだけの価値がある

auto使う派

型を書くのがめんどい

タイプ数が増えてめんどい

auto使わない派

auto使うならテンプレートに渡すし?

auto使う派

関数は興味の分割のために使うべき

auto使わない派

1つの型のみについて考えたい

意識してない箇所で汎用的にしたくない

auto使う派

適当に書いても汎用的になる

とても便利

auto使わない派

どんな型を操作してるのか意識するべき

我々は型に興味がある

        Hoge f();
...
Hoge h = f();
h.foo();
h.bar();
        Fuga f();
...
Hoge h = f(); // コンパイルエラー!
h.foo();
h.bar();
        Fuga f();
...
Hoge h = f(); // 嬉しい!
h.foo();
h.bar();

auto使う派

どんな振る舞いを持つのか意識するべき

我々は振る舞いに興味がある

        Hoge f();
...
auto h = f();
h.foo();
h.bar();
        Fuga f();
...
auto h = f(); // エラーにならない!
h.foo();
h.bar();
        Fuga f();
...
auto h = f(); // 嬉しい!
h.foo();
h.bar();

ケンカ

ダメ

ゼッタイ

なお

私は

auto使う派です

マサカリ下さい

<Thank You!>

Important contact information goes here.

勉強会後…

<Thank You!>