タグ

C++に関するbananapenguinのブックマーク (11)

  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Google Test — Google Test ドキュメント日本語訳

    はじめに¶ このページは,Google Test のドキュメント類を日語訳したものです.翻訳に関しては,誤りのないように配慮しておりますが,至らない点も多々あるかと思います. 誤訳・誤字・脱字や不適切な表現を発見されましたら, ご連絡頂ければ幸いです( http://opencv.jp/forum ). 原文は英語であり,この訳文はオフィシャルなものではありません.なお,免責事項として,訳を利用者が利用するにあたり,いかなる損害に対しても訳者はその責を負いません. Google Test プロジェクトページ: http://code.google.com/p/googletest/ ドキュメント¶ Google Test 1.6 のドキュメント このページには,Google Test 1.6 に対するすべてのドキュメントページが挙げられています. Google Test のリリース版を

  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
    bananapenguin
    bananapenguin 2015/02/26
    シグナルハンドラと非同期シグナルセーフ関数
  • C/C++の開発環境を整理してみた » tune web

    先週末からちょこちょこと書き始めて大分書くことが無くなって来ました。 コメント、質問歓迎です。まだまだ改善の余地がある気がするんだけど… →C/C++言語 開発環境 — Gist Windows/Linuxで両方で動作する成果物を想定。 有償のツールは理解が得られる方が稀なので除外。 仕様書 外部仕様 Word/Excelが手軽だけど差分が追いにくい。 Markdown+PandocかSphinxでPDF提出がいいかな? Pandoc – About pandoc Sphinx-Users.jp :: ドキュメンテーションツール スフィンクス Sphinx-users.jp 内部仕様 きちんと書いてあればDoxygenで十分だと思う。 Cしか対応していないみたいだけどdocuriumの方がgitとの親和性が高くて(tag付された結果をまとめて解析してくれるみたい)出力結果も今風に

  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • 関西ゲームプログラミング勉強会で発表してきた! - 桜花な日々

    資料 発表資料: http://goo.gl/EpAXm プログラム及び加算器: http://goo.gl/eeYix 概要 ゲームプログラミング勉強会ということで、ゲームを作るということについて話しました。 最近ゲームというと見た目が派手ですごい分、自分には難しそう・・・という人がいると思い、実際にはそうではなく、簡単なものであればすぐに作れるよという内容でした。 ・・・というのは建前で実際はライフゲームで(簡易)計算機を作ったというのが主題。 内容 発表資料を参照してください。 また作成したプログラム及び作成した回路も上記資料を参照してください。 プログラムについて 作成したプログラムはライブラリとしてQt4を使用しています。 書くプラットフォームに合わせてQtをインストールしてください。 プログラムの仕様 基的にはボタンに書いてある通りです。 このプログラムは起動時にカレントディ

    関西ゲームプログラミング勉強会で発表してきた! - 桜花な日々
    bananapenguin
    bananapenguin 2011/05/07
    ライフゲームで加算器。すごいな
  • C言語関数辞典 - nextafter, nextafterf, nextafterl

    nextafterl 関数は,実軸上で x から見て y の方向にある x の次に表現可能な値を求め,long double 型で返します. nextafter,nextafterf,nextafterl 関数は,x がその型で表現できる最大の有限な値であり,かつその結果が無限大かその型で表現できない場合,値域エラー (range error) が発生する事があります. よく似た関数に,nexttoward,nexttowardf,nexttowardl 関数があります. 戻り値 y の方向にある x の次の値 C言語サンプルプログラム 以下に nextafter 関数を使用したサンプルプログラムを示します. /* header files */ #include <stdio.h> #include <stdlib.h> #include <math.h> /* main */ int

  • double型の値をchar配列に変換する方法はありますか?

    定数1.0を直接変換する方法は無いので、変数に入れてから「それがchar配列だと騙す」しかない。 例1. union _t { double d; char c_a[1]; /*先頭要素のアドレスさえ取得できれば良いので要素は1個で良い*/ } data; int i; char *p; data.d = 1.0; p=data.c_a; for (i = 0;i < sizeof(double);i++) printf("0x%2.2x ",*p++); putchar('\n'); 例2. double d = 1.0; char *p; p = (char *)&d; for (i = 0;i < sizeof(double);i++) printf("0x%2.2x ",*p++); putchar('\n');

    double型の値をchar配列に変換する方法はありますか?
  • RealLib ではじめる誤差ゼロ実数計算 - 2008-09-09 - ひとり勉強会

    RealLib のソースコード読みを始めるはずだったんですが、なんだか全然進んでないので適当なまとめエントリでお茶を濁します! RealLib が普通にかっこよすぎるので紹介しまくりたくなりましたので紹介記事です。 実数計算と誤差 たいていのプログラミング言語の「実数 = 浮動小数点数」の計算には「誤差」があります。たとえばPythonのばあい: Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 0.1 + 0.1 + 0.1 - 0.3 5.5511151231257827e-017 0.1 を 3 回足しても 0.3 にはな

    RealLib ではじめる誤差ゼロ実数計算 - 2008-09-09 - ひとり勉強会
  • Documentation - Fast Light Toolkit (FLTK)

  • CからC++への変更点

    関数のプロトタイプ C++では、一部C言語とは違う、または拡張された部分がいくつかあります コンパイラの実装レベルや、低レベルな部分での違いは省略します C++プログラムを読み書きするのに、Cプログラマが最低限知るべきことを紹介します まずは、関数のプロトタイプについてです C言語でのプロトタイプ宣言で、引数に何も値を受け取らない場合はvoidを明示する必要があります しかし、C++では任意です。voidを省略すると値を受け取らない関数を意味します #include <stdio.h> /*C言語ではvoidを明示しなければならない*/ void func(void); void func() { puts("kitty on your lap"); } int main() { func(); return 0; } 上はC言語プログラムです C言語では、引数に何も受け取らない関数の場合

  • 1