Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
■newが失敗するとポインタにNULLが返ってきます。 #include <stdio.h> void main(){ int*i; i=new int[1000000000]; if(i==NULL){ printf("new 失敗\n"); }else{ printf("new 成功\n"); } delete[] i; } 最後にまとめて delete するのはお作法的にまずかろう,とか思うんですけれど(delete NULL は安全だから,まぁいいっちゃいんだけど),それはさておき,見るのは i の中を見て new が成功したか判断しているところです。C では一般的な方法。 ここら辺は微妙に混乱するところなんだけれども,new したときに返値の NULL をアテにしていい(malloc(3) と同じようなエラー処理になる)処理系は,あたしの知る限り,VC6 標準の挙動だけだった気が
Boost.Localeが、賛成10、反対5で採択された。たったの15人しかレビューしていないライブラリーが、万人の役に立つと、どうしていえようか。しかも、15人のうち、東アジア人としてレビューしたのは、私一人なのだ。まあ、役に立たないライブラリがひとつ増えるだけだ。 localeによる翻訳に対する、ユニークな識別子としての入力には、ASCIIを渡さなければならない。何故ならば、このライブラリの作者は、英語こそが至高の言語であり、全プログラマーとソフトウェア開発に携わる全人間は、当然のごとく英語を使うべきであると信じているからだ。何故ならば、およそ日本語のような言語は、理解するものが少なく、他の言語に翻訳しにくい。英語こそが全世界の共通語であり、英語で書かれていたならば、各国語への翻訳は簡単だからだというのである。 そのため、翻訳文へのマッピングにはASCIIを渡さなければならないのだ。
颯爽と去っていくだけではアレなので、デバッガ上でwaveを動かしてみようと思ったのですが、 何気にwaveにインタラクティブモードがあったので、これで十分な気がしてきました。 C:\Boost>wave.exe -t - Wave: A Standard conformant C++ preprocessor based on the Boost.Wave library Version: 2.0.3.2938 [Win32/Microsoft Visual C++ version 9.0] (20090602) >>> #pragma wave trace(enable) >>> #define HOGE 123 >>> #define STR_I(x) #x >>> #define STR(x) STR_I(x) >>> STR(HOGE) <stdin>:1:1: STR(HOGE)
This article describes the Android native audio APIs based on the Khronos Group OpenSL ES 1.0.1 standard, as of Android API level 9 (Android version 2.3). OpenSL ES provides a C language interface that is also callable from C++, and exposes features similar to the audio portions of these Android APIs callable from Java programming language code: android.media.MediaPlayer android.media.MediaRecorde
文法定義以外,ほとんど,boost ライブラリを使ってみる そのままです.勝手にパクって改造しました. こんな感じ.サンプルに,テキトーに GCC の RTL を持ってきました.整数,文字列,シンボルだけの S 式ならば,なんでも解析できるはずです. $ g++ sexp_parser.cpp $ cat test.txt -12345 hogehoge ABC 123 " " "" // 空白文字のパースがうまくいかない ??? "ab cde" (id "string" 123 -456) /* 複数行 コメント */ (define_insn "addsi3" [(set match_operand:SI 0 "register_operand" "r" // C++ スタイルコメント (plus:SI (match_operand:SI 1 "register_operand" "
固定小数点数と呼ばれるものに遭遇したので,取り合えず double に変換する事を考えます.固定小数点数とは,(short, int や long などの整数型の)下位 N ビットを小数点以下の数値用に使用する方法で,固定と言う名の通り N はあらかじめ固定しておくそうです.小数部は,0.1, 0.01, 0.001 ... ではなくて,1/2, 1/4, 1/8, ... のように 2^(-i) (1 <= i <= N) ごとに値を保持しておくとのこと. 以上のような固定小数点数を double に変換する関数を作成します. template <int DecimalBits, typename Type> inline double fixed_cast(Type x) { double dest = (x >> DecimalBits); Type mask = 1 << (Dec
OpenGL ES を使う上ですごく必要になってきたので作ってみた。 // 固定小数点数クラス(Q16) struct fixed { private: int32 v_; public: fixed() : v_(0) { } fixed(const fixed& f) : v_(f.v_) { } // implicit で大丈夫だよね?オーバーフローしないように注意すること。 fixed(int32 v) : v_(v << 16) { } // n/m を格納 fixed(int32 n, int32 m) : v_((int32)(((int64)n << 16) / m)) { } int32 get() const { return v_; } fixed& operator=(const fixed& f) { v_ = f.v_; return *this; } fixe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く