Twitter Log of @h_hiro_
@h_hiro @h_hiro_ @__h_hiro__ @dousenP @k000072
Back to the list
@dousenP's tweets on 2013_12_14
2013_12_14 (土): 67 tweets
- @toku51n @SubaruG この場合、メソッド(この場合はオペレーターオーバーロード)の返り値が参照型を取ることによって、「左辺値になれる」というのがポイントなのだと思います。std::vector<int> hoge(100); hoge[50] = 1000; とか
- @toku51n @SubaruG よく考えたら「参照で返すのは、見た目が普通の代入になる」(それも大きいメリットではあるのだけど)以上の効果はないのかもしれません
- @toku51n @SubaruG 念のため付け加えておくと、私は参照型がいらないと言ってるわけではなく、 [Tw:@dousenP] をきっかけに「参照型って表記を分かりやすくする以外の効果があるのか?」というのが気になっただけでした。(※私=「導線」)
- 寝る
- @ToshikoP ありがとうございます。おやすみです
- むくり
- @SubaruG @toku51n 私が問題設定を明確にできてなかったために議論がなかなか収束しなかったようで失礼しました…。参照型がなかったと仮定して、「ポインタ演算子を付ける回数が増える」以外にどういう変化が必要か、ということを考えていたのですが、仕様が大きく変わりそうですね
- @pinky53redstar @ToshikoP @Takahassy @moha721 ありがとうございます。おはようございます。
- @SubaruG @toku51n 私が問題設定を明確にできてなかったために議論が収束しなかったようで失礼しました…。参照型がなかったと仮定して、ポインタで書けないものはあるのか、ということを考えていたのですが、言語側の仕様(operatorのとか)も複雑化するってことですかね
- RT @hrd_masa: プレミア参入戦一回戦第一試合 前育1-1藤枝東(PK戦1-4) 星稜5-3盛岡商 瀬戸内1-3京都橘 帯広北1-3東山(延長) 藤枝東 星稜 京都橘 東山が明後日の二回戦へ。
- RT @hitomi5310: 試合終了。新潟経済大5-3札幌大。札大無念の1回戦敗退。
- @hokkaiyamakosi 車両故障らしいです。
- [まもなく始発列車] 稲士別駅(根室本線) 釧路方面始発 14:08 [auto]
- @SubaruG @toku51n 参照型が作られたのは、テンプレートを導入するにあたってなのですかね?(調べてみても見つからなくて)
- 見てる: When should I use references, and when should I use pointers?, C++ FAQ [URL] 「参照型が使えるなら使う。ポインタ型はそうしないとならないときに使う。」
- RT @SubaruG: C++に関しては,あるC++コードが与えられた時,それに対応する(メモリ使用量や計算速度も同じ)C言語のプログラムを作ることは,C++のコンパイラを作れる人なら そこまで難しくない(例外周りが環境依存になるかも,くらい)ので,色々と極論が成り立っちゃう…
- RT @rydotyosh: Linqからが本当のC#。templateからが本当のC++。
- RT @tomio2480: きたみ,美瑛,旭川と縁の深い土地ばかりでめっちゃテンションが上がっている / “父がブレイク寸前の観光スポットを発掘する話(及び、旭川近郊のマイナー観光地) - レールを外れてもまだ生きる - 派遣OLブログ” http://t.co/rabXOW…
- そもそものきっかけである「C++の参照型がNULLを取れない仕様になった理由」 [Tw:@dousenP] も気になる。ここまでの話から踏まえると、「そもそも参照が、主に引数や返り値として使われることを想定して作られたから」と私は勝手に推測するに至ったわけですが
- @SubaruG @toku51n ありがとうございます。昨日の話の「テンプレートでの型推論が参照型の存在を前提としている」がいまいちピンとこないので完全な理解には至ってませんが…。
- 実際自分は最初、C++の参照型が気持ち悪いと思った。C言語の範囲だと「参照渡ししたいときは&をつける(ポインタで渡す)」というルールがあったのに、C++では単に引数に変数を書いただけでも値渡し/参照渡しの両方の可能性があるわけなので。今では慣れはしたけど気持ち悪さはたまに感じる
- @CureFine そこがちゃんと表記上区別できるのって結構大きいメリットだと思うのですよね…。ちなみにJavaの「プリミティブ型は値渡し・クラス型は参照渡し」という、同じ表記なのに一貫性がないことにも同様に気持ち悪さを感じます。
- 「Javaで、プリミティブ型は値渡し・クラス型は参照渡しという、同じ表記なのに一貫性がないことに気持ち悪さを感じる」と書いたけど、Rubyはそうじゃなかったりする。Rubyは数値でも何でも参照渡し。ただそこで「数値型など一部の型はImmutable」と定めている。
- @SubaruG @toku51n あー、わかりました。これを機械的にポインタに置き換えると void f(NonCopyable const* x); f(&(NonCopyable(args...))); となりますけど、&の中が一時オブジェクトだからうまく渡せないんですね。
- @SubaruG @toku51n 参照なしでこれを解決しようとすると、NonCopyableが返す値をnewで領域確保されたポインタにする(あるいはスマートポインタ)とかって面倒なことになりますしね。
- @SubaruG @toku51n 参照型が、こういう一時オブジェクト引渡しの仕様をはっきりさせてあるってメリットが大きいわけですね。
- 値渡しも参照渡しもできて、ただし参照渡しである場合にそれを明示することが必須な言語というと、Perlもそうなのかな。ちょっと意味合いが違うかもしれないけど
- @hotwatermorning そもそも「b - c」に対して呼ばれるoperator-の仕様を operator-(Hoge x) ではなく operator-(const Hoge * x) にすれば解決するのかな、と思ったのですが、返り値の方が困るということに気づきました
- @hotwatermorning あー、それもありますね
- @hotwatermorning もともとの話が、参照型がNULLが取れないことによって「初期化をせずに参照型変数を宣言できない」ということだったのですよね。参照型って、引数としては便利だけど、普通に変数として宣言するときは利用ケースがかなり限定されるものだと思ってます。
- @hotwatermorning もともと、ポインタも生で扱う必要がないならそれに越したことはないわけですし、使いどころが限定されているといえば限定されているのですが。
- @ignis_fatuus @hotwatermorning あ、ここでの普通というのはそういう意味ではなくて、 int & hoge = ...; のように変数宣言をする、という意味でした。
- RT @hotwatermorning: Algol68ではr1=r2と書くとr2の型によってr1の参照先のオブジェクトへの代入か、r1の参照先の結合変えか、2通りの意味になるそうで、C++ではこれを避けたかったとのこと。
- RT @koizuka: C++で参照だからNULL(nullptr)が入らないかっていうと来ることはあるけど、参照の場合にはNULL入れる方が悪い、ポインタの場合はNULL対処しないほうが悪い、というような指針での運用はするなぁ
- @ignis_fatuus @hotwatermorning そもそもの話が、「参照型ができてポインタ型とおさらばできると思ったら、他言語のようにnullを許容したいときに結局ポインタに戻らざるを得なかった」って話だったのです。
- @ignis_fatuus @hotwatermorning あー、そういえばそんなライブラリありました…。
- 自分が実際に、メンバ変数に参照型を使えずポインタ型を使った事例としては Calc c; c.param(...); c.get(...); c.param(...); c.get(...); : ってのがある。最初の宣言でパラメータ与えるようにすれば参照型にできるが、かっこ悪い。
- 見てる: それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C++erの雑記帳 [URL]
- @ignis_fatuus あ、これはboost::optionalでも対応できるケースです(当時単純に知らなかった)。
- @ignis_fatuus @hotwatermorning 以前、必要があって自前で木構造を作ったときはスマートポインタ(一部生ポインタ)を使いましたが、コードを読み返してみたら、参照型&optionalでも代替できそうでした。
- それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C erの雑記帳 [URL] via @delicious
- @ignis_fatuus @hotwatermorning そうですね、ムーブの存在もありますね。
- @ignis_fatuus @hotwatermorning ライブラリ探すという手間を(時間の割に)極端に嫌う私
- @ignis_fatuus @hotwatermorning なにこれ…てかこんなのほしかった
- @ignis_fatuus @hotwatermorning 以前、「●●型か●●型か●●型(固定数)だけを引数として受け入れるメソッドを作る。しかも継承によらずに(クラスを判定する追加コストなしで)」というのを考えたときに、相当面倒な方法を取っていたものでして
- @hotwatermorning @ignis_fatuus MPLを知らなかったです…(以前話には聞いたかもしれないけど記憶の彼方)少なくともそのコードを書いてた当時は知らなかったです。
- @ignis_fatuus @hotwatermorning 確認したのですが、以前私が書いたのは、タグディスパッチ的な(タグディスパッチを知る前だった)自前の方法でした。 [URL]
- [まもなく始発列車] 上白滝駅(石北本線) 旭川方面始発 17:08 [auto]
- [まもなく最終列車] 真布駅(留萌本線) 深川方面最終 16:52 [auto]
- RT @hrd_masa: プレミア参入戦一回戦第二試合 磐田1-2柏 新潟2-1仙台 試合終了 柏と新潟が明後日の二回戦へ。 山梨学院がプリンス残留の望みを繋げる。
- RT @hrd_masa: プレミア参入戦一回戦第二試合 大阪桐蔭0-1市船 愛媛FC1-0大分 試合終了 市船と愛媛FCが明後日の二回戦へ。 浦和もプリンス残留に望みを繋げる。
- @ignis_fatuus @hotwatermorning 覚えておきます(忘れないように…)
- @ignis_fatuus @hotwatermorning なるほど、これは非常にストレートですね。
- I'm at 北12条駅 (Kita jūni jō Sta.) N05 (札幌市北区, 北海道) [URL]
- I'm at セイコーマート 地下鉄北12条駅前店 (札幌市北区, 北海道) [URL]
- I'm at 北海道大学 大学院情報科学研究科 (札幌市北区, 北海道) [URL]
- @sayasayare おかえりなさいませ
- #prince18 大分トリニータU-18がプレミアリーグ参入戦で敗れたため、プリンス九州1部2部入替戦(鹿児島実業・サガン鳥栖・鵬翔・折尾愛真の4チームで実施)からの参入枠は1に
- プレミアリーグ参入戦の1日目勝利チーム再確認。プリンスリーグからの降格が未確定だった東北高校・利府高校・横浜FC・三重高校・玉野光南高校は降格。札幌創成高校もおそらく降格 / 高円宮杯U-18サッカーリーグ2013|日本サッカー協会 [URL]
- RT @tks_knzn: 変態端末オフ感想 ・Windows PhoneのシェアはiPhoneより高い。 ・何故かTizenがいる! ・両面ディスプレイが多い ・ソ連製のポケコン! ・何故かABITの社長! ・RWCのSIMフリースマートフォンカタログ 以上の事から分かること…
- [URL] 日中(日韓もかな)の歴史問題、日本が「客観的な歴史検証を踏まえよう」としている、科学的にはしごく当然なことを「侵略を美化」と言われてるように感じる。ドイツも先日のヒトラーの話を見ると、客観的な歴史検証から逃げてるように思える。(続く)
- [URL] (続き)どんな国家間の力関係があろうとも、科学的な主張までひっくり返されるというのは非常に気分が悪く感じる。
- (RT @fmty: 「同じプログラムを二つ書いて、両者に同じ入力をしたら同じ出力が出る」確かJRの自動改札制御システムは別チームで同じ仕様のシステムを並行して開発してテストしたってどこかの記事に載ってたなぁ →プログラムに証明が付く日 | RANDMAX http://t.co…)
- @yukidaruma_117 おかえりなさいませ
- @nazz209441 おやすみなさいませ
- たんぶった: アイドル=偶像 つまり二次元アイドルのほうが真理に近い - アイマスとかラブライブとか、空想のアイドルに浸る理由ってなんなの?:わんこーる速報! - gsub!(/Maraigue/){ "" } [URL]
- 直近約24時間で84発言してた。(3垢合計) [累積tweet: 195417] [auto]
Back to the list
Powered by @h_hiro_