C++

可変引数関数から可変引数関数を呼ぶ事はできないのか?

↓こんな感じで使いたいんだけど。 void myprintf( const char* str, ... ) { printf(str, ...); } マクロ関数なら、__VA_ARGS__が使えるようだけど printf(str, __VA_ARGS__); 関数ではダメみたい。 vprintf, vfprintf, vsprintf (C++ Reference) printfの代…

プロトコルバッファー猿

プロトコル バッファ - Google Code C++チュートリアル - Protocol Buffers (by fenixsoft)この、Protocol Buffers って便利そうだけど、どうなんだろう。 使える言語が限られたりしてるし。 一時的なデータのやりとりに使うのがいいのかな。 COLLADAのよう…

プリコンパイル済みヘッダ

なんかめんどくさい、いろいろインクルードしたりして… プリコンパイル済みヘッダ使うのなら、ヘッダファイルいらないんじゃないのかな。 ソースからプリコンパイル済みヘッダを生成すればいいわけだ。 Javaにはそもそもヘッダファイルがないので楽チン。 ヘ…

コーディングスタイル

▼Google C++スタイルガイド 日本語訳 | textdrop http://www.textdrop.net/google-styleguide-ja/cppguide.xml#Default_Arguments ▼チェック用スクリプト http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py デフォルト引数を禁止で、デ…

STLを含むクラスのexport

以下のソースをVCでビルドするとwarning C4251:がでる。 #pragma以外で、これを出ないようにする方法はないのか? #include class __declspec(dllexport) CClass { public: std::vector list; }; 解決法 1) warningは気にしない。 2) #pragmaでworningを出さ…

特殊なtemplate

template void func(){...}; という使い方もできるということを最近知った。 Nが定数になる。 func(); のように使う。http://homepage2.nifty.com/well/Template.html http://next1.cc.it-hiroshima.ac.jp/CPPPUBLISH/node14.html C++のtemplateは便利なので…

newの失敗で例外を発生させない方法

operator newを定義する以外では、以下の方法しかないのか? char *p = new(std::nothrow) char[2000000000]; std::set_new_handler()を使ってもうまくいかなかった。

内部クラスの前方参照

内部クラスの前方参照はできないのか? 以下のようにするとエラーになる。 class ClassA; class ClassA::ClassB; class ClassZ { ClassA *a; ClassA::ClassB *b; };

スマートポインタは中途半端や

smart_ptr p1; // AClassは参照カウンタを持つクラス AClass *p = new AClass(); // ここで参照カウンタ=1 p1 = p; // 参照カウンタが1のまま { smart_ptr p2 p2 = p; // 参照カウンタが1のまま ... // スコープを抜けるときp2のデストラクタで、 // 参照カ…

C++は嫌

ヘッダーとソースが分かれていたりしてめんどくさい。 Javaをやったら、もうC++には戻れなくなった。

Javaで別のconstructorを呼ぶ

Javaでは、引数が違う別のconstructorをthisで呼ぶことができる。 class Sub extends Base { Sub() { ... } Sub(int a) { this(); // Sub()がコールされる。 ... } } これをC++ではどうやるのか? かなり難しかった記憶がある。結局できなかったかも。誰か教…

C++Builder 2007発売開始

http://www.codegear.com/jp/products/cppbuilder ¥71,400か…

Adobe ASL

http://opensource.adobe.com/ Adobe ASLって、STLやBoostに代わるものなのか!? Adobe製品のデータを、読み書きするものかと思ってたが違うような感じ。

TurboC++インストール

▼キーの取得 http://www.borland.com/downloads/download_turbo.html ▼ファイルのダウンロード http://turboexplorer.com/mirror 私の環境ではprerequisitesをインストールしなくても、 Turbo C++ Explorerは動いた。 OpenGLコンポーネントはないようだ。 基…

C++/CLI

http://www.atmarkit.co.jp/fdotnet/special/cppcli/cppcli_03.html C++/CLIってMSの規格じゃないらしいので、少しは期待できそう。 でも、C++の上位互換なので、C++の汚いプログラムも書けるということか。 メモリの開放をしなくてよいだけでもありがたい。

ビットフィールド

C++のフリーのビットフィールドクラスはないのか。 Javaはこれか? http://www.jajakarta.org/commons/lang-2.0/ja/withPrimary/org/apache/commons/lang/BitField.html ビットフィールドじゃなくビットアレイなのか? http://java.sun.com/j2se/1.4/ja/docs…

static constの使用

ヘッダファイルの以下の行を #define VAL 1.0f 次のように置き換えた場合に、実行速度やメモリ効率に弊害はないのか? static const float VAL = 1.0f;