Movatterモバイル変換


[0]ホーム

URL:


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

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

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (73)

タグの絞り込みを解除

c++に関するnilabのブックマーク (203)

  • コンストラクタでは、代入よりも初期化を使おう 12項 - higepon blog

    これよりも Hoge::Hoge(const string& initName) { this->name = initName; }これを使いましょうという話。 Hoge::Hoge(const string& initName) : name(initName) { } 理由は、初期化リストではstringのコピーコンストラクタのみが実行されるのに対して、コンストラクタでの代入では、コンストラクタ・代入が行われて効率が良くないから。 またメンバの name がもし仮に const であるならば(これは良くあることだが)、そもそも初期化リストでしか初期化できない。 代入を使うほうが理にかなっているというシチュエーションもあり、(大量組み込み型データメンバーの場合)、その詳細は、EffectiveC++ 【改訂第2版】 アスキーアジソンウェスレイシリーズ―Ascii Addison We

    コンストラクタでは、代入よりも初期化を使おう 12項 - higepon blog
    nilab
    nilab2019/06/01非公開
    コンストラクタでは、代入よりも初期化を使おう 12項 - higepon blog
    • NULL と nullptr って何が違う? - Qiita

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

      NULL と nullptr って何が違う? - Qiita
      nilab
      nilab2019/05/30非公開
      「C++11 では、NULL に代わるものとして nullptr キーワードが追加されています」
      • More C++ Idioms/インクルードガードマクロ(Include Guard Macro) - Wikibooks

        同一のヘッダファイルを同じ翻訳単位にインクルードすることは問題となる。 なぜなら、C++ の基規則である単一定義規則(One Definition Rule(ODR))に違反するからである。 ヘッダファイルは直接あるいは間接的なインクルードによって複数回インクルードされるかもしれない。 インクルードガードマクロ(Include GuardMacro)イディオムは C でも適用可能な古いイディオムである。 ある翻訳単位で複数回ヘッダファイルをインクルードすることを防ぐために、単純な #define を使う。 以下のようなマクロを、ヘッダファイルの先頭と末尾に置く(訳註:__ で開始する名前は実装に予約されている)。

        nilab
        nilab2019/05/30非公開
        「インクルードガードマクロ(Include Guard Macro)イディオムは C でも適用可能な古いイディオムである。 ある翻訳単位で複数回ヘッダファイルをインクルードすることを防ぐために、単純な #define を使う」
        • インクルードガード

          [C++で開発 ] インクルードガード 少し込み入ったプログラムを開発していると、ヘッダファイルを2重にincludeしてしまい、コンパイルエラーとなることがあります。ここでは、その回避方法として使われる内部インクルードガードと、include処理時間を大幅に削減しコンパイル時間を短くする冗長インクルードガードの2つを取り上げます。 (追加)最近のGCCでは#pragma onceも無警告で使用できるようになっているようです。 インクルードガードの必要性 2重インクルードの発生 まず、2重インクルードが発生する例を見てみます。

          nilab
          nilab2019/05/30非公開
          「少し込み入ったプログラムを開発していると、ヘッダファイルを2重にincludeしてしまい、コンパイルエラーとなることがあります」「回避方法として使われる内部インクルードガード」
          • 植山 類

            仕事を説明するときに「Google仕事をしているけどオープンソースなのでGoogleのプロダクトを作っているわけではないし、むしろアップルとかソニーの人と一緒に仕事している」というと、???という反応になることが多いので、こういう仕事をしているんだよということをちょっと説明してみます。 僕のいるチームはLanguage Platform...

            植山 類
            nilab
            nilab2016/04/18非公開
            「仕事を説明するときに「Googleで仕事をしているけどオープンソースなのでGoogleのプロダクトを作っているわけではないし、むしろアップルとかソニーの人と一緒に仕事している」というと、???という反応になる……」
            • nilab
              nilab2014/12/31非公開
              速いしスケールする並列CSVパーサ作った紆余曲折話 - 俺とお前とlaysakura
              • スレッドセーフという幻想と現実 - yohhoyの日記(別館)

                この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基型とデータ競合C++標準ライブラリとデータ競合C++標準ライブラリ:シーケンスコンテナ編C++標準ライブラリ:連想コンテナ編 スレッドセーフ RELOADED 基的なスレッドセーフ保証 std::shared_ptr<T> std::rand() std::cout (文のみ約9000字) はじめに マルチスレッド対応の点では他言語に遅れを取っていたプログラミング言語C++ですが、C++11ではようやく標準ライブラリにスレッドサポートが追加されました。C++11スレッドサポートではスレッドクラスstd::thr

                スレッドセーフという幻想と現実 - yohhoyの日記(別館)
                nilab
                nilab2014/12/21非公開
                スレッドセーフという幻想と現実 - yohhoyの日記(別館)
                • メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)

                  この記事はC++ Advent Calendar 2014の21日目にエントリしています。 内容はC++メモリモデルと逐次一貫性についての概説記事となっています。flickr / nomadic_lass もくじ 忙しい人のための「C++メモリモデル」C++メモリモデル一問一答 ソフトウェアからみた「C++メモリモデル」 “メモリ”という共有リソースC++ソースコードが実行されるまで メモリの一貫性と整合性 逐次一貫性モデル is Easy ハードウェアからみた「C++メモリモデル」 ハードウェア・メモリ一貫性モデルC++コンパイラの責任と自由 強いメモリモデル vs. 弱いメモリモデル 逐次一貫性モデル is Hard (文のみ約9600字) まえがき When your hammer isC++, everything begins to look like a thumb

                  メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
                  nilab
                  nilab2014/12/21非公開
                  メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
                  • GitHub - kazuho/picojson: a header-file-only, JSON parser serializer in C++

                    You signed in with another tab or window. Reload to refresh yoursession. You signed out in another tab or window. Reload to refresh yoursession. Youswitched accounts on another tab or window. Reload to refresh yoursession. Dismiss alert

                    GitHub - kazuho/picojson: a header-file-only, JSON parser serializer in C++
                    nilab
                    nilab2013/11/07非公開
                    kazuho/picojson · GitHub : PicoJSON is a tiny JSON parser / serializer for C++
                    • HALOBET : Situs Slot Gacor Resmi & Link Alternatif Mudah Maxwin

                      HALOBET : Situs Slot Gacor Resmi & Link Alternatif Mudah Maxwin HALOBET sebagai situs slot gacor resmi memberikan akses mudah bagi pemain melalui link alternatif yang selalu aktif dan aman digunakan. Di platform ini, pemain dapat menikmati berbagai pilihan judi slot online dengan peluang slot maxwin yang tinggi setiap hari. Selain menawarkan pengalaman bermain yang stabil.

                      nilab
                      nilab2013/10/29非公開
                      2013年11月2日(土) 13:00 大阪産業創造館6F 会議室D 住所: 大阪市中央区本町1-4-5 / C++例外安全Day - PARTAKE
                      • googletest - Google C++ Testing Framework - Google Project Hosting

                        You signed in with another tab or window. Reload to refresh yoursession. You signed out in another tab or window. Reload to refresh yoursession. Youswitched accounts on another tab or window. Reload to refresh yoursession. Dismiss alert

                        googletest - Google C++ Testing Framework - Google Project Hosting
                        nilab
                        nilab2013/09/15非公開
                        googletest - Google C++ Testing Framework - Google Project Hosting : "Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture."
                        • 文字列操作

                          文字列比較 // s1 と s2 を func で処理し比較した結果を戻す const int xcompare(const std::string& s1, const std::string& s2, int (*func)(int num)=toupper) { assert(s1.size()==s2.size()); // s1 と s2 の長さは同じなはず int result=0; std::string::const_iteratorit1(s1.begin()); std::string::const_iteratorit2(s2.begin()); const std::string::const_iterator end1(s1.end()); const std::string::const_iterator end2(s2.end()); for( ;it1

                          nilab
                          nilab2013/09/14非公開
                          文字列操作
                          • C3(Composite Computer Club) » C++のプリミティブ型がとりうる最大値を取得する。

                            C++のプリミティブ型がとりうる最大値を取得する。 こんばんわ!もう早いもので春の匂いがあちらこちらでしますね。お花見も目前に迫ってきています。 C/C++ではint やchar、floatに double とプリミティブ型(あるいはfundamental types)がとりうる範囲が<limits.h> (C++だと<climits>)の中で定義されています。次のコードは<limits.h> の中で定義されたマクロ定数 INT_MAX, LONG_MAX を表示するプログラムです。 #include <iostream> #include <limits.h> //C++だと<climits> int main() { std::cout << INT_MAX << std::endl //2147483647 << LONG_MAX << std::endl; //2147483647

                            nilab
                            nilab2013/01/10非公開
                            C3(Composite Computer Club) » C++のプリミティブ型がとりうる最大値を取得する。 : 「ちなみに32bit 環境のVisual Studio 2010 による実装だと、std::numeric_limits<std::int32_t>::max() はINT_MAX の値を返しているようです」
                            • エラーになるのは何故?(デフォルトコンストラクタの合成) - C++ をクイズ形式で勉強

                              コード(1) // main.cpp struct A { A (int a) { } }; int main() { A a; } コンパイルエラー $ g++ main.cpp main.cpp: In function 'int main()': main.cpp:12:error: no matching function for call to 'A::A()' main.cpp:5:note: candidates are: A::A(int) main.cpp:4:note: A::A(const A&) コード(2) // main.cpp struct A { A (int a) { } }; struct B { A a; }; int main() { B b; } コンパイルエラー $ g++ main.cpp main.cpp: In constructor

                              エラーになるのは何故?(デフォルトコンストラクタの合成) - C++ をクイズ形式で勉強
                              nilab
                              nilab2013/01/10非公開
                              エラーになるのは何故?(デフォルトコンストラクタの合成) - C++ をクイズ形式で勉強
                              • エラーになるのは何故?(デフォルトコンストラクタの呼び出し) - C++ をクイズ形式で勉強

                                コード(1) // main.cpp struct A { A(int a) { } }; int main() { A a; } コンパイルエラー $ g++ main.cpp main.cpp: In function 'int main()': main.cpp:12:error: no matching function for call to 'A::A()' main.cpp:5:note: candidates are: A::A(int) main.cpp:4:note: A::A(const A&) コード(2) // main.cpp struct A { A(int a) { } }; int main() { A* a = new A[10]; delete[] a; } コンパイルエラー $ g++ main.cpp main.cpp: In functio

                                エラーになるのは何故?(デフォルトコンストラクタの呼び出し) - C++ をクイズ形式で勉強
                                nilab
                                nilab2013/01/10非公開
                                エラーになるのは何故?(デフォルトコンストラクタの呼び出し) - C++ をクイズ形式で勉強 : "note: candidates are"
                                • Sign in - Google Accounts

                                  Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

                                  nilab
                                  nilab2012/12/26非公開
                                  コンテナに複数の並び順を持たせる - boostjp : 「mapとして使いたいけど挿入順も覚えておきたい」「mapに、値からキーを検索する機能がほしい」Boost Multi-Index Library : boost::multi_index_container
                                  • メールでデータベースを更新するココロミ ~C++での即興実装

                                    今回のお題 先日引き受けた相談事は「メールを使ってデータベースにレコードを登録したい」とのこと。レコードを文としたメールを投げて、そいつがデータベースに格納されるカラクリが欲しいってんですね。例えば売上データやらアンケート結果やら、あちこちで収集したデータをメールでかき集めるのが目的なのでしょう。「そんなもん、どこぞにWeb-serviceをホストしておいてHTTPで投げればいぃんじゃね?」と答えたところ、できるだけチープに実現したく、サーバ立てるのは避けたいそうな。 なるほど、そう言うことなら納得です。テキトーなメールアカウントを1つ用意し、みんなが寄ってたかってそいつめがけてメールを投げつけ、小さなアプリケーションがメールを読んでデータベースに流し込むってスンポーですか。「登録したいレコードって定型なの? どれも同じフォーマットなら実装楽なんだけど」と訊くと依頼主曰く「いや、ゆくゆく

                                    メールでデータベースを更新するココロミ ~C++での即興実装
                                    nilab
                                    nilab2012/08/28非公開
                                    メールでデータベースを更新するココロミ ~C++での即興実装 (1/4):CodeZine : POP3, Boost.Asio, XML, Apache Xerces, ICU, SQLite
                                    • Effective STL 11

                                      このブラウザ バージョンのサポートは終了しました。サポートされているブラウザにアップグレードしてください。

                                      Effective STL 11
                                      nilab
                                      nilab2012/07/17非公開
                                      Effective STL 11 - Google ドキュメント
                                      • newした配列のサイズ - Faith and Brave - C++で遊ぼう

                                        newした配列は最後にdelete[]を使って解放するわけですが、「何個解放するか」は誰が知ってるのか。 コンパイラによって異なると思いますが、GCC 4.6では先頭要素の1つ前にサイズが入ってました。 #include <iostream> struct X { X() { std::cout << "ctor" << std::endl; } ~X() { std::cout << "dtor" << std::endl; } }; int main() { const std::size_t n = 3; X* xs = new X[n]; std::cout << *(reinterpret_cast<std::size_t*>(xs) - 1) << std::endl; delete[] xs; } ctor ctor ctor 3 dtor dtor dtorただし、デストラ

                                        newした配列のサイズ - Faith and Brave - C++で遊ぼう
                                        nilab
                                        nilab2012/05/25非公開
                                        newした配列のサイズ - Faith and Brave - C++で遊ぼう : 「newした配列は最後にdelete[]を使って解放するわけですが、「何個解放するか」は誰が知ってるのか」「GCC 4.6では先頭要素の1つ前にサイズが入ってました」
                                        • 値渡しか、参照渡しか

                                          スタックオーバーフロー 値渡しでは、関数を呼び出すたびに、引数に渡したデータがコピーされ、スタックに積まれます。そのため、サイズの大きいデータを値渡しで渡していると、実行時にスタックが溢れてしまうことがあります。これは、C言語でもC++言語でも同様です。 コピーによるオーバーヘッド 値渡しでは、関数を呼び出すたびに、引数に渡したインスタンスのコピーが発生します。このオーバーヘッドのために、参照渡しに比べて、パフォーマンスが悪くなります。 C言語でも、サイズの大きい構造体は参照渡しとして、パフォーマンスの悪化を防ぐ、という指針が知られています。C++言語の場合は、データサイズの他に、データの複雑さも影響してきます。というのも、インスタンスのコピーが行われる際に、コピーコンストラクタが呼び出されるためです。 複雑な構造を持つクラスであれば、コピーコンストラクタに複雑なコピー処理が実装されている

                                          nilab
                                          nilab2012/05/10非公開
                                          値渡しか、参照渡しか

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

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

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp