タグ

c++に関するakaneharaのブックマーク (22)

  • C++ の学習サイトを作りました - Qiita

    はじめに C++ って他の言語に比べると勉強しづらくないですか? 書籍や学習サイトの内容が古い、または少ないんですよね。ただでさえ言語仕様が複雑なのに、それを手助けする情報も少ないと初学者には辛いんじゃないかと思います。というか僕がそうでした。 そんなわけで、もう少し今風な学習サイトを作ろうと思って作成しました。 ゼロから学ぶ C++ ちゃんとスマホでも読めるようになっています。 C++11 をベースに作っているので、このサイトももはや古い方に入るかも知れませんが、C++20 が浸透してきたらアップデートしようと思います。 よかったらご活用下さい。 ゼロから学ぶ Python(姉妹サイト) 『ゼロから学ぶ Python』というサイトも作成しています。あわせてご活用下さい。 さいごに 上記のサイトはどちらも GitHub でソースコードを管理しています。 スターを付けてもらうと励みになります

    C++ の学習サイトを作りました - Qiita
  • Linus氏のC++に対する最近の否定的見解 | taro-nishinoの日記 | スラド

    最近、Linus氏はまたしてもReal World TechnologiesのModerated DiscussionsフォーラムでC++に対する否定的見解を投稿したことは皆さんも御存知でしょう。主要な投稿は以下の5つです。 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110563&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110577&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110618&threadid=110549&roomid=2 ht

  • C++をこれから勉強する人のための道しるべ(C++03) - Qiita

    この記事について C++未経験者が一年間かけてC++を勉強した軌跡と学んだことを紹介します。 C++は参考書に書いていない様々な落とし穴があります。初心者の方はこの記事を参考にすることで、知らずにバグを埋め込んでしまうことを防ぎましょう。 C++を勉強する前提 元々のプログラミング歴 筆者はC++を勉強する前は次のような少しのプログラミング経験がありました。C++を勉強することによりプログラミングの基礎が身につき今ではRuby,Pythonなどモダンな言語もすぐに身に着けることができました。 大学の教養の授業で教養にてCでハローワールドと入出力を勉強 1ヶ月のJavaプログラミング研修 C#開発半年 記事で参考とする規格 初心者C++erを対象とした記事ですのでC++の規格(バージョン)を解説します。C++の規格は下記の様に複数あります。 C++98(C++03) C++11 C++14

    C++をこれから勉強する人のための道しるべ(C++03) - Qiita
  • C++の勉強ですが - higepon blog

    激しく初歩からやり直したいのでロベールさんのが良いでしょうか。 お勧めのがあったら教えてください<(_ _)>。 僕は大体レベルとしては id:higepon:20080319:1205932496 くらいで、better C として適当にC++使ってきた感じです。 勉強するなら今しかない。 とりあえず明日屋に行くこと決定。 追記 みなさんにいくつかご推薦をいただきました。ありがとうございます これから屋に行ってきます。 もしかしたらもっと初心者向けのを買うかもしれません。 JIS規格のJIS X3014 id:akinishi さん C++の設計と進化 id:SaitoAtsushiさん、id:objectxさん、id:scinfaxiさん、なつたんさん C++再考 とおるさん。これよさそう。 Effective C++ 原著第3版 id:objectxさん。id:temtan

    C++の勉強ですが - higepon blog
  • 株式会社ロングゲート - プログラミングの魔導書 ~Programmers’ Grimoire~ vol.1

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 “Construct the World, C++” ユーザーの力によって際限なく進化するプログラミング言語C++。2010年のいま、C++はどこにいるのか 目次(カッコ内に数字のある記事名についてはサンプルをご覧いただけます) 創刊に向けて Bjarne Stroustrupへのインタビュー (1 2) 江添 亮 boost::serializationの紹介 前編 (1 2 3 4) 近藤 貴俊 Variadic Template −お前を待っていた− Egtra Chronoライブラリで考える型システム melpon オーブンレンジクッキング (1 2) 高橋 晶 Hello,C++ World! 稲葉 一浩/k.inaba Crawling in the Stream zak メタプログラミングノキ

  • C++の歴史

    江添亮 http://cpplover.blogspot.jp/ boostcpp@gmail.com @EzoeRyou GFDL 1.3 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Themes Sky - Beige - Simple - Serif - Night - Default Transition Styles Cube - Page - Concave - Zoom - Linear - Fade - None - Default C++の原作者 Bjarne Stroustrup C++のオリジナルの設計者にして最初の実装者 1979年 Stroustrup、ケンブリッジで博士号を取得するべく研究中 分散システム上で動作するソフトウェアの研究 実証のため、大規模なシ

  • モダン C++ プログラミング - 日本語公開記事 - Confluence

    このドキュメントはサイボウズ社内のトレーニング用に作成したものです。 作成時点では C++11 はまだあまり利用できない状況でしたので、C++98 ベースの記述になっています。 いずれ更新を予定しています。 モダンの定義モダンとはテンプレートメタプログラミング(TMP)を駆使することです。嘘です。 宗教論争に意味はないので、ここでは 「最近の C++ の仕様・機能を理解し、C より実装効率が良く不具合の少ない」 プログラミング技法を「モダン C++ プログラミング」と定義します。 つまり、不具合が少なく、かつ C にはもう戻れなくなるような効率の良さを達成するものです。 学習効率(ROI)が極めて良くないような技法(例えば TMP)は、この定義では除外されます。 勉強方法お勧めの順序は以下。決して全部を読もうとしないこと。 C++ Language Tutorial のような、あっさりした

  • Emscripten

    Emscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform.

  • 【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)

    私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそも当に分けなければならないのか」という質問です。 C++といえば、ヘッダー部と実装部を.hファイルと.cppファイルに分けることが一般的とされている言語ですが、 これは同じオブジェクト指向言語のC#やJavaにはない特徴です。 そのせいでC++使いたちは今日もcppファイルとhファイルを行ったり来たりしながらコーディングする羽目になっています。(そしてVS使いはF12とCtrl+-を得意気に連打しています。) 私にとってもそれが当たり前になって久しいですが、 時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は二度も同じコードを書くことを強いるのか」と質問を受けます。 私はそのたびに「実装の隠蔽化」とか「循環参照の危険が云々」とか「そ

    【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)
  • introdunction to SIMD programming - primitive: blog

    Unite 2015 Tokyo の講演で詳細を話せなかったのが心残りだったので、大量のオブジェクトの更新処理についてこの場で書いてみます。 主に C++ で、簡単なパーティクルエンジンを作り、それを SIMD を用いて高速化する手順を解説します。 話を簡単にするため、以下の前提を設けます。 ・x86 環境のみ考慮 ・パーティクルは位置と速度のみを保持 ・パーティクル同士の相互衝突は総当たりで計算 総当たりなので超遅いですが、実装は容易で SIMD による恩恵を受けやすく、題材として手頃です。 この記事の中で引用されているソースの元は こちら、ビルド結果 (上のスクリーンショットのデモプログラム) は こちら になります。 相互衝突するパーティクルを実装する場合、お互いの距離を計算し、当たっていたらめり込み具合に応じて押し返す、というのがよくある実装だと思います。まずはそれをストレートに

    introdunction to SIMD programming - primitive: blog
  • 例外安全への道 - Road to Exception Safety | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 「例外安全 (Exception Safety)」という言葉をご存知でしょうか。 週末、の整理をしていたときに「Exceptional C++」というが出てきました。C++ のイディオム集といった感じのなのですが、その中に登場する「例外安全」という言葉をご紹介します。 「例外安全」とは、例外が発生したときに適切に処理されることを意味する言葉です。「適切に」とは、リソースリークが発生しないことや、オブジェクトの内部状態の整合性が保たれるということです。 「普段から意識してるよ」という方もいると思いますが、「聞いたことが無かった」という方は、例外安全という考え方を意識することで、今までより品質の良いコードを書けるようになるはずです。 Web上のリソースでは、以下のページに記載があります。 Exception-Safety in Generic Components

  • よいコード、わるいコード

    論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...Toru Tamaki

    よいコード、わるいコード
  • C++ マルチスレッド 入門

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    C++ マルチスレッド 入門
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
  • C++11 スマートポインタの話 - ここは匣

    C++にはガーベジコレクタが言語的には存在しないので、動的に確保したオブジェクトのメモリの管理はプログラマが責任を持って管理しなければ、メモリリーク・リソースリークなどの問題を生じてしまいます。 今時のプログラマはこうした問題を引き起こすリスクを減らす為に、記述ミスの起こりやすい生のポインタを使い自力でnewとdeleteを記述する事を避けて、安全なスマートポインタ、即ちオブジェクトの寿命により自動的にメモリ解放を行う便利なポインタを利用するべきです。 しかし、スマートポインタと言っても種類が幾つかあり、落とし穴も存在するのでどういった状況でどれを利用するのが良いのかを考察してみます。 Dynamic memory managementを見てみても C++11から随分増えていますね http://en.cppreference.com/w/cpp/memory std::auto_ptr

    C++11 スマートポインタの話 - ここは匣
  • C++11参考書の公開:C++11の文法と機能

    C++11の参考書をGitHubで公開する。 GitHub: EzoeRyou/cpp-book GitHubからzipでダウンロード GitHub Pagesでの閲覧:C++11の文法と機能 序 書はC++11のコア言語の文法と機能を、標準規格書に従って解説したものである。正式なC++規格書として発行された後の、ひとつ後のドラフト規格、N3337 を参考にしている。ドラフト規格を参考にした理由は、正式なC++規格書は、個人での入手が煩わしいためである。読者に入手が困難な資料を元に記述された参考書は価値がない。そのため、読者が容易に入手できるドラフト規格のうち、正式なC++規格書とほとんどかわらないN3337を参考にした。 書の対象読者は、C++を記述するものである。C++実装者ではない。そのため、サンプルコードを増やし、冗長な解説を増やし、C++コンパイラーを実装するための詳細な定義

  • C/C++ 入門

    今年こそ C/C++ 言語をマスターしよう! C 言語というと難しい言語、という印象をお持ちの方も少なくないのではないでしょうか。 さらに C++ となるともうサッパリ。という人もいると思います。 メモリ管理も自分でやらないといけないとか、ポインターとか、構造体とか、その辺でつまづいた人もいるかも知れませんね。 このサイトではなるべく基礎を噛み砕いて説明していきたいと思います。

  • C++高速化

    はじめに 速いプログラムで得られるメリットを超えるようなコストを払わないように。 まずは動くプログラムを書いて目的を達成することが大事。 自分律速じゃなくてプログラム律速だなと感じた段階でリファクタリングを考える。 プログラム来の意図が読み取れなくなりそうなマニアックな高速化は避ける。 清く正しくメンテナンスしやすいプログラムを書くほうが結局は生産的。 学習目的でない限り、車輪の再発明を避ける。 やろうとしていることはきっと既に誰かが実現し、 再利用可能な形で公開してくれているはず。 まずは標準ライブラリとかBoostを探してみる。 あとGitHubでスターが多いやつとか。 頑張れコンパイラ Intelの icc でビルドされたプログラムは速いらしい。 gcc や clang の最適化技術も着々と進歩しており、 新しいコンパイラを使うほうがその恩恵を受けられる。 最適化オプション htt

    C++高速化
  • 前置インクリメント vs 後置インクリメント | 闇夜のC++

    後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか

  • よく使うC++のイディオム 「NVI」と「RAII」

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    よく使うC++のイディオム 「NVI」と「RAII」