Highly portable, highly focused and highly reusable C++ refactoring library at the heart of OpenC++ technology. Welcome! OpenC++ is C++ frontend library (lexer+parser+DOM/MOP) and source-to-source translator. OpenC++ enables development of C++ language tools, extensions, domain specific compiler optimizations and runtime metaobject protocols. OpenC++ has been created by Shigeru Chiba, and is now m
OpenC++ is a version of C++ with a Metaobject Protocol. In other words, it is a tool of source-code translation for C++. Programmers can easily implement various kinds of translation so that they can define new syntax, new annotation, and new object behavior. OpenC++ is useful if they need, for example, Developing extensions to C++, to provide support for things like parallelism, distribution, con
Last revised on May 25, 2000 UNIX & XWindow 環境における C/C++プログラミング言語の基礎とその計算物理への応用を解説します。 このホームページの古い版の偽ミラーサイトが存在するのでご注意ください。 本物のサイトは http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ です。 前書き 推奨図書一覧 C言語とC++言語の基礎文法の初心者向け解説 (プログラム初心者を対象としたC/C++言語の入門です) 第1章 C言語とC++言語の役割 第2章 簡単な計算 第3章 ループで繰り返し計算 第4章 配列で大量データ処理 第5章 関数で計算の分担 第6章 文字列の操作 第7章 ファイルの操作 第8章 グラフィック(XWindow System利用者向け) 高校物理の計算例 (高校生を対象として初歩的な物
イントロダクション RTTI (Run Time Type Information) は実行時型情報などと訳され、その名の通り実行時に型の情報を得る機能のことをいいます。これは、ポリモーフィックなオブジェクトを扱う時に有効な機能です。dynamic_cast 演算子や typeid 演算子、type_info クラスなどがこれにあたります。 便利な機能には大抵コストがついてまわります。RTTI も例外ではなく、プログラムサイズの増加や実行速度の低下などのコストがかかります。そして RTTI は、コストがかかるという理由と、特別必要な機能ではないという理由から、敬遠されがちです。しかし、全てのコードを自分で書く場合は RTTI を使わずに安全な設計をすることも可能ですが、他人の作ったライブラリを使う場合はそうもいかないことがあります。また、自分で全部書く場合でも、RTTI を使った方がスマー
目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。
よく使うマニピュレータ left,right 左寄せ、右寄せ dec,hex,oct 10進、16進、8進 setw() フィールドの文字数指定(次のフィールドにしか影響しない) setfill() パティング文字 showbase 16進,8進のプレフィックスを表示(0x,0) boolalpha true,falseのシンボル表現 引数を取るマニピュレータは、#include <iomanip>が必要。 プログラミング言語C++第三版ではP714から解説がある。 プログラム例 #include <iostream> #include <iomanip> using namespace std; int main() { cout << hex << setw(8) << 50 << endl; cout << dec << setw(20) << left << 100 << endl
Information About News Tool Suite Supported Platforms The Developers Source Code Current Releases Release Archive Variants / Patches Code Repository Valkyrie / GUIs Documentation Table of Contents Quick Start FAQ User Manual Download Manual Research Papers Books Contact Mailing Lists and IRC Bug Reports Feature Requests Contact Summary Commercial Support How to Help Contributing Project Suggestion
{NOTE: For the non programmers, some exegesis may be necessary: when a programmer starts to learn a new language, a typical first exercise is to program the computer to display the message "Hello World".} --------------- A compilation of *Hello World programs* designed by various categories of *developer* follows. High School/Jr.High =================== 10 PRINT "HELLO WORLD" 20 END First year in
文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)
Cのポインタを整数に変換する Cのポインタを整数に変換したいときがあります。このとき問題になるのは、ポインタのサイズが int と同じとは限らないということです。たとえば、 x86_64 の 64ビットのバイナリでは sizeof(int) = 4, sizeof(void *) = 8 となります。ポインタと同じサイズの整数を使いたい場合は C99 で導入された stdint.h で提供される intptr_t または uintptr_t を使います。 stdint.h には他にも int32_t や int64_t など、サイズつきの整数の型も提供されています。たとえば、uint64_t を使うと、64ビットの符合なし整数を扱うことができます。 私の場合、C++ のプログラムで void * から直接 uint64_t にキャストしようとしてはまりました。次のプログラムを x86_32
C++ の基本書のひとつ。必ずしも初めて知ったことばかりでもなかったが、非常に系統的に重点が網羅されている点では重宝する内容になっている。全体的に訳出が固めな気もするが、まあこんなものかもしれない。特筆すべきは、トピックのひとつひとつが極めて理詰めで説明されているため納得しやすく、(一部は除くが)長さもあまり長くない点である。本書の帯にある「すべての C++ プログラマ必読 !」という謳い文句は事実であり、本書の読む時間を惜しんで C++ を書いても、却って意味不明なバグに見舞われて時間を食うのがオチである。最低限、本書の扱う C++ という言語を効果的に使い落し穴にはまらないためのポイントは理解した方がいいだろう。文字通り、実戦書であり、C++ 使いを自ら任ずるならば必読書である。 とはいえ、この本は読書ノート化に非常に時間のかかった本でもある。インターネット的にいえば不完全な状態でもど
google-perftoolsというx86,x86_64,ppcなUNIX向けのプロファイラの(cpu-profiler部分)を、armなLinuxに対応させてみました。何かの役に立つかもしれないので、patchおよびpatch作成作業のメモを載せます。arm-v5tアーキテクチャ(ARM9系)向けの移植です。 Linux/ARM向けのソフトウェアのパフォーマンスを解析したいなぁと思うことがあったのですが、OProfileはカーネル入れ替えがめんどくさい、gprofはプロファイル専用のバイナリを作成するのがめんどくさい、プロプラな奴は興味ないということで移植しました。移植の方がめんどくさいだろという話もありますが。perftools自体の説明はこちらが便利です。あーそういえばAndroidもARMでしたっけ? パッチ http://binary.nahi.to/google-perfto
Oct 2011 UPDATE: Frédéric Germain has setup a Github page containing all the below patches and additional new features, see: https://github.com/fredericgermain/LeakTracer. This is the newest version; all the below source code and documentation are of historic interest only. LeakTracer is a small tool I wrote when checking a C++ program for memory leaks. I couldn't get dmalloc to display what I wan
placement new と delete (2) -- placement delete ところで、placement new があるのならば、placement delete というのもあるのだろうか? 答としては、「ある」。 しかし、関数としての operator delete は定義できるけれども、 new 演算子のように、それを呼び出す delete 演算子の構文はサポートされていない。つまり、 class Foo { public: static void *operator new( size_t size, T& t ); static void operator delete( void *p, T& t ); }; のような placement delete 関数を定義することはできても、 それを T t; Foo *p = new( t ) Foo; … delet
Node:Top, Next:G++ and GCC, Previous:(dir), Up:(dir) Introduction このマニュアルでは、GNU コンパイラの使い方、インストール方法、移植方法や、新しい機能や互換性の無い部分、それにバグレポートの方法などについて説明している。GNU CC のバージョン 2.95 に対応している。(日本語版ドラフト-17 July 2001) G++ and GCC: C や C++ のプログラムがコンパイル可能Invoking GCC: gcc のコマンド行オプションInstallation: GCC のインストール方法C Extensions: C 言語の GNU の拡張C++ Extensions: C++ 言語の GNU の拡張Gcov: gcov: GCC のテストカバレージプログラムTrouble: GCC のインストールで問題が起
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く