はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    iPhone 17

『qiita.com』

  • 人気
  • 新着
  • すべて
  • Haskellの例外処理事情 - Qiita

    20 users

    qiita.com/rinse_

    Haskellの例外処理事情 Haskellを使うたびに例外について調べ直す癖がついているので、諸々をまとめておく。 TL;DR 部分関数を使うな。 失敗可能性はMaybe?Either?IO? -> 迷ったらMonadThrowを使え。 予めエラー型を統一しないと例外処理クソだるいんだけど -> SomeExceptionを使え。 ライブラリどれ使えばいいの? -> safe-exceptionsを使え。 部分関数を使うな 死の化身。部分関数自体を避けるしか方法はない。用意された部分関数を使う場合は必ずラップすること。 パターンマッチの失敗やundefined, error等のピュアな文脈での例外は、IOモナドの中でのみキャッチすることができる。しかし、ピュアな文脈で解決できる問題を神モナドで解決するのはあまり嬉しくない。ピュアなものはピュアなものに、神のものは神に返すべきである。 もし

    • テクノロジー
    • 2020/05/19 14:28
    • Haskell
    • 例外
    • qiita
    • プログラミング
    • あとで読む
    • おじいさん、今日のご飯はCatamorphismですよ - Qiita

      13 users

      qiita.com/rinse_

      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

      • テクノロジー
      • 2020/03/12 12:35
      • Haskell
      • category
      • 圏論
      • HotEntry
      • qiita
      • プログラミング
      • programming
      • あとで読む
      • 右辺値、左辺値などの細かい定義 - Qiita

        4 users

        qiita.com/rinse_

        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

        • テクノロジー
        • 2017/11/09 20:46
        • C++におけるおすすめ命名規則 - Qiita

          8 users

          qiita.com/rinse_

          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

          • テクノロジー
          • 2016/12/07 11:12
          • c++
          • プログラミング
          • C++演算子オーバーロード大全 - Qiita

            11 users

            qiita.com/rinse_

            はじめに この記事ではC++の演算子のオーバーロードを使い慣れていない人の為のまとめとして作成しました。 C++の演算子のオーバーロード、引数や戻り値に自由が利きすぎてどうするのがセオリーなのか分からないぞ、というようなときに見て頂けたらと思います。 主に引数や戻り値を中心に据えますが、細かい機能も網羅していきたいと考えています。 私は二項演算子はグローバル関数教の信徒であり、const教の敬虔な信徒です。 優先順位の順に、演算子別に解説します。 なお、thisの型を T* const型とし、Tとは別の任意の型をUとしています。 では、早速解説していきたいと思います。 Member Selection

            • テクノロジー
            • 2016/09/22 10:20
            • c++
            • プログラミング
            • *Programming
            • tips
            • Boost.Rangeってなに - Qiita

              3 users

              qiita.com/rinse_

              Boost.Rangeが流行っている気がするので解説します。それぞれの細かい機能についてはリファレンスを見てね。この記事はBoost.Rangeが分からない人、特に全く知らない向けの記事になっているため、boostが1ミリも分からなくても読める記事になっているつもりです。なお、私がこの記事を書く上で使用したBoostのバージョンは1.60.0です。リファレンスは以下です。URLをちょっといじれば好きなバージョンに飛べると思います。 http://www.boost.org/doc/libs/1_60_0/libs/range/doc/html/ なお、標準ライブラリのアルゴリズムヘッダも参照のこと。 http://en.cppreference.com/w/cpp/algorithm Boost.Rangeとは イテレータ対(iterator pair)というイディオムを応用発展させたbo

              • テクノロジー
              • 2016/07/22 08:44
              • c++
              • メンバ関数につけるconst修飾子、&(&&)修飾子の考察 - Qiita

                4 users

                qiita.com/rinse_

                メンバ関数にconst修飾って何ぞやとという質問を受けました。メンバ変数を変更できないよって印…なのは分かっているのだそう。ここで、もう少しC++と仲良くなるために、もう少し深く彼らと付き合ってみたいと思います。オマケで、&(&&)修飾子についても考えます。 メンバ関数に付ける修飾子は、static, virtual, inline/constexpr, const/volatile, &/&&, noexcept/throw, override/final があります。このうち、今回取り扱うconst/volatile, &/&&は似た特性のものであるため、一緒に扱いたいと思います。 これら修飾子が実際に修飾するのは、メンバ関数に暗黙的に渡される第0引数とも言うべき、thisポインタです。 このthisポインタさえ解決してしまえば、メンバ関数も通常の関数と同じように扱うことができます。

                • テクノロジー
                • 2016/04/15 00:46
                • C++
                • プログラミング
                • コンストラクタが暗黙に宣言されるとき、されないとき - Qiita

                  7 users

                  qiita.com/rinse_

                  こんにちは。 最近勉強し始めたc#でWPFをやってみましたが、もう見たくもありません。 さて、今日はc++を使っていても意外になかなか覚えない、コンストラクタの暗黙の宣言 / 非宣言をまとめておきたいと思います。 関連して、よく問題になる暗黙のコピー、ムーブの問題についても書き留めておこうと考えています。 コンパイラが用意してくれる特殊関数は以下になります。(c++14時点) デフォルトコンストラクタ コピーコンストラクタ コピー代入演算子 ムーブコンストラクタ ムーブ代入演算子 デストラクタ 何事もなければこれらが全て暗黙的に宣言・定義されます。( class something {}; ) 平和ですね。みんながみんなこうであればよいのですが、そうはいかないのです。 #コンストラクタが暗黙に宣言されるとき、されないとき ざっくり以下に表にまとめました。 なお、constructorをct

                  • テクノロジー
                  • 2015/08/18 19:51
                  • C++11
                  • C++
                  • programming
                  • あとで読む
                  • 自動的な比較演算子の生成 - Qiita

                    3 users

                    qiita.com/rinse_

                    比較演算子の定義というものは実に面倒なものです。 せめて逆の意味の演算子は自動的に定義してくれてもいいんじゃないですか。 そこで、せめて逆の意味の演算子を自動的に定義してくれるものを作っておくと便利です。 手っ取り早く結論を見せろと言う方は、#方法3を御覧ください。 #方法1 比較演算子を持つクラスをMixinする curiously recurring template pattern を使って、自分の派生クラスを手に入れます。 そしたら、全ての比較演算子を派生クラスの実装に依存したかたちで定義してあげます。 template < class derived > struct comparable { // provide comparison operators bool operator == ( const derived& right ) const { return !( st

                    • テクノロジー
                    • 2015/06/01 11:43
                    • range-based for loopsの要素の型について - Qiita

                      12 users

                      qiita.com/rinse_

                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                      • テクノロジー
                      • 2015/05/26 18:11
                      • C++
                      • ラムダ式考察 - Qiita

                        3 users

                        qiita.com/rinse_

                        ラムダ式とは C++のラムダ式は、最小の関数オブジェクトを作るシンタックスシュガーです。 キャプチャ キャプチャとは、ラムダ式の外の変数などをラムダ式の中で使えるようにすることです。 具体的には、メンバ変数として持たせることになります。 以下はコピーキャプチャの例ですが、参照キャプチャも大差はありません。 ただし、コピーキャプチャは内部にコピーを持つので、大きな構造体なんかをコピーキャプチャで持つとsizeof( lambda )が膨れ上がります。当然ですが、キャプチャする際にコピーが行われますので、コピーが重たいオブジェクトをコピーキャプチャするのはおすすめできません。 注意するところは、ラムダ式のoperator()はconst修飾されていますので、コピーキャプチャの場合const修飾されていないメンバ関数を呼び出すことができません。 ラムダ式のconst修飾を外すには、mutable

                        • テクノロジー
                        • 2015/04/20 23:07
                        • C++
                        • 一時オブジェクトの寿命と右辺値参照、ムーブセマンティクスのお話 - Qiita

                          7 users

                          qiita.com/rinse_

                          仰々しいタイトルですみません。 それぞれが絡み合ってるのであんまり綺麗にまとまっていませんが、一時オブジェクト、右辺値、左辺値、ムーブセマンティクスのお話をします。 4/11 ideoneへのURLをコード例の下に追記しました。 飛ぶと実際に実行した様子を見ることが出来ます。 一時オブジェクト ( = 右辺値 ) 一時オブジェクトは、右辺値と同等の意味合いで使われます。 すなわち、関数の戻り値、コンストラクタによって生成された直後のインスタンス、リテラルなどもここに入れることができるでしょう。 基本的に一時オブジェクトはその式( expression )が評価された時点で破棄されます。 struct something { ~something() { std::cout << "destructor" << std::endl; } }; something func() { retur

                          • テクノロジー
                          • 2015/04/10 19:12
                          • C++
                          • C++11
                          • プログラミング
                          • 開発
                          • 可変長テンプレート引数を持つクラスを扱う - Qiita

                            3 users

                            qiita.com/rinse_

                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                            • テクノロジー
                            • 2014/12/07 11:56
                            • C++

                            このページはまだ
                            ブックマークされていません

                            このページを最初にブックマークしてみませんか?

                            『qiita.com』の新着エントリーを見る

                            キーボードショートカット一覧

                            j次のブックマーク

                            k前のブックマーク

                            lあとで読む

                            eコメント一覧を開く

                            oページを開く

                            はてなブックマーク

                            • 総合
                            • 一般
                            • 世の中
                            • 政治と経済
                            • 暮らし
                            • 学び
                            • テクノロジー
                            • エンタメ
                            • アニメとゲーム
                            • おもしろ
                            • アプリ・拡張機能
                            • 開発ブログ
                            • ヘルプ
                            • お問い合わせ
                            • ガイドライン
                            • 利用規約
                            • プライバシーポリシー
                            • 利用者情報の外部送信について
                            • ガイドライン
                            • 利用規約
                            • プライバシーポリシー
                            • 利用者情報の外部送信について

                            公式Twitter

                            • 公式アカウント
                            • ホットエントリー

                            はてなのサービス

                            • はてなブログ
                            • はてなブログPro
                            • 人力検索はてな
                            • はてなブログ タグ
                            • はてなニュース
                            • ソレドコ
                            • App Storeからダウンロード
                            • Google Playで手に入れよう
                            Copyright © 2005-2025 Hatena. All Rights Reserved.
                            設定を変更しましたx