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

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

アプリで開く

はてなブックマーク

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

はてなブックマーク

トップへ戻る

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

    2025年ランキング

『プログラミングの教科書を置いておくところ』

  • 人気
  • 新着
  • すべて
  • C++ 11 auto の使い方 - プログラミングの教科書を置いておくところ

    9 users

    prettysoft.hatenablog.com

    はじめに C++ 11 で auto キーワードが型推論機能として生まれ変わりました 7 Declarations 7.1 Specifiers 7.1.6 Type specifiers 7.1.6.4 auto specifierここでは auto の4つの使い方について簡単に説明します auto, auto&, const auto&, auto&& (auto* などともできますがここでは省きます) auto auto はコピーされても構わないときに使います 整数やポインタなどを受け取る場合はいいのですが、次のような使い方では無駄なコピーが生じてしまうので注意が必要です s は foo[n] のコピーです std::vector<std::string> foo; ... for( auto s : foo ){ ... } auto& auto& はほぼ万能型です lvalue

    • テクノロジー
    • 2016/12/28 16:10
    • C++
    • C++ SFINAE - プログラミングの教科書を置いておくところ

      4 users

      prettysoft.hatenablog.com

      SFINAE とは SFINAE は、Substitution Failure Is Not An Error の略です これは、テンプレートの展開途中に文法違反になるような候補があったとしても、他の候補があるのであればその文法違反はエラーとせずに無視するという仕様です と言っても何のことを言っているのかわからないかもしれませんが、大丈夫です 具体的な例を見れば SFINAE というのは実はとても簡単な仕組みに SFINAE という名前を付けているだけなんだということがわかると思います 標準での言及箇所は・・・・・・わかりません 標準の .pdf を substitution で検索すると 14.8 辺りにそれっぽいところはあります n1905 14 Templates 14.8 Function template specializations 14.8.2 Template argum

      • テクノロジー
      • 2016/05/13 00:21
      • C++
      • C/C++ 変数宣言の読み方入門 - プログラミングの教科書を置いておくところ

        5 users

        prettysoft.hatenablog.com

        読み方のコツ 具体例 const の読み方 読み方のコツ 規則は単純です。この二点だけ押さえましょう: ポインタの* より 配列の[] や 関数の() の方が優先順位が高い 日本語の人は左から右へ読む。ただし () の中は後で読む 英語の人は逆に変数名(一番内側の括弧)から結合優先順位の高い順に外へ読む そしてそれぞれの記号が出てきたら下記のように読み替えましょう * 〜を指すポインタ, a pointer to 〜 [] 〜の配列, an array of 〜 () 〜を返す関数, a function returning 〜 〜を引数に取り〜を返す関数, a function taking 〜 and returning 〜 具体例 char* aaa; char aaa[10]; char *aaa[10]; char** aaa; char (*aaa)[10]; char (**

        • テクノロジー
        • 2016/01/27 14:30
        • c++
        • C++ 11 rvalue とは何か - プログラミングの教科書を置いておくところ

          14 users

          prettysoft.hatenablog.com

          はじめに これは気にする必要のないことなのでこれまで意図的に説明しなかったことなのですが、rvalue とは何者なのかということについて気になる人も多いようです rvalue参照についてはこれまで何度か説明をしてきましたが、そこでは「rvalue参照の rvalue とは一時オブジェクトである」と言ってきました 「rvalue とは」ではなく「rvalue参照の rvalue とは」です rvalue参照の文脈で rvalue と言えばそれは必ず一時オブジェクトのことです しかし rvalue参照と関係の無い文脈での rvalue は必ずしも一時オブジェクトであるとは限りません では rvalue とは何者なのでしょうか ここでは rvalue とは何者なのか なぜそれを知る必要がないのかを説明しましょう 標準では 標準では次のように言っています N3797 3 Basic concept

          • テクノロジー
          • 2015/12/21 00:38
          • rvalue
          • c++
          • プログラミング
          • programming
          • あとで読む
          • C++ の初期化 - プログラミングの教科書を置いておくところ

            8 users

            prettysoft.hatenablog.com

            はじめに 初期化に無頓着な人は C++ の初期化の挙動について知らないということが原因の一つのような気がします そこでここでは C++ の初期化について説明します デフォルトコンストラクタ デフォルトコンストラクタというのは、引数なしで呼ぶことのできるコンストラクタのことです ユーザー定義の引数なしで呼ぶことのできるコンストラクタが宣言されているクラスではそれのことです そうしたコンストラクタのないクラスでは暗黙のコンストラクタのことです 12 Special member functions 12.1 Constructors 5 A default constructor for a class X is a constructor of class X that can be called without an argument. If there is no userdeclare

            • テクノロジー
            • 2015/02/09 21:26
            • C++
            • C++ 基底クラスのアクセス指定子 - プログラミングの教科書を置いておくところ

              12 users

              prettysoft.hatenablog.com

              private 継承や protected 継承がよくわからないということをよく聞きます クラスの継承というと is-a 関係だの is-implemented-in-terms-of 関係だのという言葉が出てきてしまうのが何となく難しそうに感じさせている一因だと思いますが、では本当に難しいことなのかというと実は別に難しくも何ともありません private 継承や protected 継承がよくわからないということの原因はただ基底クラスのアクセス指定子が何を意味しているかを理解していないところにあるのだと思います Fig.1 // public継承 class CDerivedClass1 : public CPublicBaseClass { ... }; // protected継承 class CDerivedClass2 : protected CProtectedBaseClas

              • テクノロジー
              • 2014/11/10 11:03
              • C++
              • programming
              • Saved For Later
              • 開発
              • プログラミング
              • IT
              • コールバックの薦め - プログラミングの教科書を置いておくところ

                9 users

                prettysoft.hatenablog.com

                「コールバック関数」ってよく聞きますよね 今回はその「コールバック」の使い方を覚えましょう その前に その前に、関数のポインタがなんだかわからないという人や、関数のポインタの宣言の仕方がわからないという人は C/C++ 変数宣言の読み方入門 や C/C++ ポインタ入門 を先にご覧になった方がいいかもしれません 具体的には まず具体的な例を挙げますが、「コールバック関数」というのは文法的には関数のポインタを引数に取る関数に指定するその関数のことです この例では foo 関数はパラメータに指定された callback という関数のポインタを介して bar 関数を呼び出すことができるようになっていますね この仕組みが「コールバック」です Fig.1 void foo( size_t celt, int* pelt, void (*callback)(int)){ for( size_t n =

                • テクノロジー
                • 2012/10/03 15:49
                • 入門
                • プログラミング
                • あとで読む
                • カレンダー入門 - プログラミングの教科書を置いておくところ

                  4 users

                  prettysoft.hatenablog.com

                  はじめに 新人教育などでプログラムを書かせる場合、その人がイメージしやすい問題を与えるということが重要です ですから、まったくの初心者には「関数の仕様を渡して、その仕様通りの動作をする関数を書かせる」といった問題や「printf や malloc を書いてみよう」といった問題よりは「電卓を書いてみよう」「カレンダーを書いてみよう」といった問題の方が適切です (そういったステップを乗り越えた後は printf や malloc を書かせるのはとてもよい課題です) 電卓やカレンダーならどんな初心者でも動作の細部まで完成形をイメージできますから、書いているプログラムが今どこまでできていて次に何をしなければいけないのか、といったことも容易にイメージすることができます 初心者に課題を出す場合にはここが重要なところで、ここをイメージできないままに放っておくと、宿題だから仕事だからやらなきゃいけないから

                  • テクノロジー
                  • 2012/06/25 22:51
                  • プログラミング
                  • c++
                  • programming
                  • 仕事
                  • プログラミングの教科書を置いておくところ

                    8 users

                    prettysoft.hatenablog.com

                    はじめに C++20 の前の基礎知識として、以前 C++ の名前解決 でも紹介した ADL (Argument-dependent name lookup) に関連した話題を少し紹介してみます ■蛇足 ここで「名前を探す」などと言っているのはすべてコンパイル時の話です コンパイラ内部の話です 実行時に関数を探すようなコードが生成されるわけではありません ADL と関数テンプレート 標準に次のような記述があり、通常の関数テンプレート呼び出しには ADL は適用されるが、テンプレート引数を明示的に指定した場合は他の候補の名前が見えていないと ADL は適用されない(呼び出そうとしている Unqualified name がテンプレート関数だと認識されない)。と言っています N1905 14 Templates 14.8 Function template specializations 14.

                    • テクノロジー
                    • 2010/10/15 14:38
                    • アルゴリズム
                    • プログラミング
                    • C++
                    • 学習
                    • あとで読む
                    • C++ テンプレート引数に応じた場合分け - プログラミングの教科書を置いておくところ

                      8 users

                      prettysoft.hatenablog.com

                      テンプレート内でのマルチバイト文字とワイド文字の扱いを例に、テンプレート引数に応じた場合分けを実現する方法について説明します テンプレート引数に応じて何か処理を分けたいというときには、その場合分けを別のテンプレートに追い出すことで実現できます テンプレート引数に応じた場合分け 今、Fig.1 のような関数を考えてみましょう Fig.1 #define elementsizeof( a ) sizeof((a)[0]) #define elementsof( a ) (sizeof((a))/elemetsizeof((a))) void debug_dump_vectorA( const std::vector<std::string>& v, int indent = 0 ){ int n = 0; for( std::vector<std::string>::const_iterato

                      • テクノロジー
                      • 2010/10/15 09:10
                      • C++
                      • template
                      • あとで
                      • C++ 構文解析入門 - プログラミングの教科書を置いておくところ

                        3 users

                        prettysoft.hatenablog.com

                        はじめに 近年、組み込み環境でもスクリプト言語への関心が高まっていますが、そういった言語処理系を書く際に必要となってくるのが字句解析、構文解析です ここでは簡単な再帰下降型のパーサを例に、実際に実装してみながら構文解析について学んでゆきましょう 再帰下降型の構文解析器は単純に実装するとスタックの消費が激しいことやスタック領域の枯渇の予測が難しいことなどであまり実用的なものにはならないのですが、構造が簡単なので構文解析の仕組みを理解するのには向いています (「再帰降下」でも「再帰下降」でもどっちでもいいです。「recursive descent」の訳かな) BNF 式の構造の定義としてBNF的な表記を用いていますが、別にBNFを知らなくても問題ありません 空文字列(ε)は省略してあります 一部には正規表現的な表記も用いています * は 0回以上の繰り返し、+ は 1回以上の繰り返しを表してい

                        • テクノロジー
                        • 2010/09/24 08:55
                        • c++

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

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

                        『プログラミングの教科書を置いておくところ』の新着エントリーを見る

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

                        j次のブックマーク

                        k前のブックマーク

                        lあとで読む

                        eコメント一覧を開く

                        oページを開く

                        はてなブックマーク

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

                        公式Twitter

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

                        はてなのサービス

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