Sapporo.cpp & CLR/H 合同勉強会 ( http://atnd.org/events/33614 ) で発表したスライドです。

Sapporo.cpp & CLR/H 合同勉強会 ( http://atnd.org/events/33614 ) で発表したスライドです。
はじめに:なぜ Google C++ Testing Frameworkを使うのか¶ Google C++ Testing Framework を上手に活用すれば,より良い C++ のテストを書くことができます. Linux,Windows,そして Mac,あなたが C++ のコードを書いているこれらの環境に関係なく Google Test を利用できます. では,優れたテストを書くにはどうすればよいのでしょうか?Google C++ Testing Framework は,どのように役立つのでしょうか?我々は次のように考えています: テストには, 独立性 と 再現性 が必要です.別のテストの結果に依存して成功したり失敗したりするテスト,をデバッグするのは非常に面倒な作業です.Google C++ Testing Framework は,各テストを異なるオブジェクト上で実行することによって
The document discusses the complexities of programming in C and C++, emphasizing that many programmers lack a deep understanding of the language, which leads to common errors. It uses code snippets to explore basic principles, limitations, and specific requirements of these languages, such as the necessity of including specific headers and explicit declarations. Interviewing candidates for C progr
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
コミュニティとしてのBoostはC++標準化委員会の委員により設立されており、現在でもその多くが構成員として留まっている。このような経緯もあり、BoostコミュニティはC++の標準化において大きな影響力を有している。実際に標準化委員会が発表した「TR1」の2/3以上がBoostライブラリを基にしている。Random, Regex, ThreadなどはいずれもC++11規格の標準ライブラリとして正式に導入・標準化されている。その後もOptionalやAnyなどがC++17規格で導入されており、影響を与え続けている。このことから、Boostは考案された新機能を標準化させる前の試験運用の場であるとも言える。 Boostで公開されるライブラリはコミュニティの公開レビューによって精選されている。Boostを使用して作成したプログラムは、商用、非商用を問わず無償のBoost Software Lice
Microsoft is holding an AI Agents Hackathon, and we want to see what you can build with Python! We'll have 20+ live streams showing you how to build AI agents with Python using popular agent frameworks and Microsoft technologies. Then, you can submit your project for a chance to win prizes, including a Best in Python prize!
ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基本 テンプレート グラフ
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー C++の言語仕様を個別に関連づけながら図にしたのを見つけたんだけど,これがすごい。George Mason大学のSeal Lukeさんいわく「正しくかつ完璧なC++パーサーを作るのは数学的に不可能」なのだそうで,さもありなんと頷ける。 余りに巨大なので縮小してる。クリックで元画像を開きます。 同じようにして作ったC言語の文法図はこんなかんじ。 C++を華麗に使いこなせるのは,Googlerみたいに頭のよい人だけなのかも...。
最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。まだ全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。 BOOST_FOREACHとautoですっきりループ tupleで無くなる無駄な構造体 #pragma onceで楽々インクルードガード std::functionとlamda関数でコンパクトなコード typeidでリフレクション 主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。 前置きですが、本エントリ内のコードはすべてgccの4.5.0で動作確認を行っています。(mac portのgcc45パッケージをインストールしました)。またビルド時にはc++0xの使用を明示する必要があります。 $ g++-mp-4.5 -std=c++0x main.cpp 1. BOOST_FORE
2010年度 生物情報科学科 情報基礎実験 資料 2010年11月2日 C++プログラムのデバッグ手法 この資料のURL http://www.xerial.org/wiki/lecture/2010/CppDebug 担当: 斉藤 太郎 (http://www.xerial.org/leo) クラスを使ったプログラミング クラスを使う理由は、おおざっぱに コードを再利用したいとき データ構造を作るとき(BitVector, 木構造など) アルゴリズムに必要な変数やメソッドをまとめるとき などです。クラス(オブジェクト)を作るクセをつけておくと、プログラムの細部を効率的に「忘れる」ことができ、プログラムの大きな流れに集中しやすくなる利点があります。また、道具となるクラスをたくさん用意しておくと、複雑な工程が絡み合ったプログラムでも、短い行数でコーディングできるようになっていきま
文字列にはC言語の文字列charと、C++で定義されているstringクラスがある。 char型文字列は配列と同じ性質を持つ。文字定数のラベルは文字列のアドレスとなり、関数の引数にはポインタを使用する。 例: #include <stdio.h> #include <string.h> out(char *p){ printf("%s\n",p); } main(){ char *a="JSA"; out(a); } stringクラスを使用する場合は #include <string> を指定する。ラベルはオブジェクトであるからchar型のようにポインタに注意する必要がない。 例1: /* cc -lstdc++ b.cpp */ #include <iostream> #include <string> out(string p){ cout << p << endl; } main(
創刊号のテーマは Construct the World, C++ です。まず、レビューを書くという条件でこの雑誌を紹介してくださったくださった深川宏樹さん (id:hiroki_f)、また高橋晶さん (id:faith_and_brave) をはじめとする「C++ 闇の軍団」の皆様に感謝いたします。ありがとうございます。 僕は仕事で C++ を使っていますが、 C++ のスキルはたいしたことがありません。スキルをどう表現するかは難しいところですが、 Exceptional C++ を読んで「当たり前じゃん」ではなく「勉強になるなあ」と思える程度の能力です。そして C++ が好きな言語というとそうではなく、どちらかというと嫌いな部類です。C++ の記述の面倒くささやコンパイル時間の長さに辟易して D に逃げてしまったくらいです。しかし C++ には学ぶところがたくさんあります。 C++ の
Information 2013/12/25 書籍『プログラミングの魔導書 Vol.3』の発売 (書籍版の予約受付は終了しました) 2013/12/03 書籍『プログラミングの魔導書 Vol.3』の予約受付開始 2011/12/01 ブログを開始 2011/11/30 著者からの指摘を受け、書籍 『プログラミングの魔導書 Vol.2』PDF版を改訂 2011/11/02 書籍 『プログラミングの魔導書 Vol.2』の壁紙公開 2011/10/05 書籍 『プログラミングの魔導書 Vol.2』を発売 (書籍版の予約受付は終了しました) 2011/9/15 書籍 『プログラミングの魔導書 Vol.2』の予約受付開始 技術トレーニングサービスを開始 2010/8/07 書籍 『プログラミングの魔導書 Vol.1』を販売開始 2010/6/01 書籍情報を公開しました 2010/2/28 今年5月
鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正
const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク
newでヒープに獲得したオブジェクトは、必要なくなった時に明示的にdelete開放しなければいけない。 開放し忘れた場合、メモリリークが発生する。 明示的なdeleteがプログラマの責任であることはプログラマにとって負担であり、生産性の低下にもつながりかねない。 必要のなくなったオブジェクトを確実に開放するための手段としてスマートポインタがある。 スマートポインタの基本 スマートポインタは 開放する必要がある(つまりnewで確保した)オブジェクトを指すポインタ オブジェクトである。 スマートポインタのデストラクタで 対象のオブジェクトを開放するようになっ ているため、スマートポインタ自身が消去されると同時に対象のオブジェクトが 自動的に開放される。 std::auto_ptrを利用した例 #include <iostream> #include <memory> class Test
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く