C++ で Variant 型を作るとしたら

このエントリーをはてなブックマークに追加
1名無しさん
C++ で VB のような Variant 型(クラス)を作るとしたら、
どのようなクラス設計が考えられるでしょうか?

もちろん、「C++でそんなもん使うな」という意見は置いて :)
2名無しさん:2000/01/15(土) 18:50
Variantじゃないけど、Perlの変数みたいに
文字列と数値を両方扱えるクラスを作ったことがある

実装としては、何の変哲もない文字列クラスに、
整数型(int@`long)や実数型(double)にキャストされたら
strtolとかstrtod関数に保持してる文字列渡して
その結果を返すようにoperatorで演算子定義しただけ。

あんまり使わなかったから実用的かどうかよくわからないが。

#ちなみに、やろうとおもえばマジカルインクリメントもサポートできます(笑)
3名無しさん:2000/01/15(土) 21:41
VC++のVARIANT型を参考にされたら如何でしょうか?
4某ランド:2000/01/15(土) 22:14
ですね。ActiveXと通信するにはどうせ互換性無いと
5plur:2000/01/16(日) 02:35
ついこないだのことだな、VARIANTで失敗したのは。
<COMDEF.H>に入っている_variant_tを使ったほうがいい。

>_variant_t オブジェクトはVARIANT データ型をカプセル化します。
>このクラスは、リソースの割り当てと解放を管理し、必要に応じて
> VariantInit と VariantClear の関数呼び出しを行います。
とあるぞ。
参考にしたら?
6マクネリ:2000/01/16(日) 16:09
数字、文字列、その配列さらに辞書クラスまでをまとめた
クラスを作ったことがあります。裏ではSTLが働いてます。
C++なら、何でもできる。但し、適材適所で使うこと。
巨大な配列をいちいちメモリコピーしていたら間抜けだ。
7名無しさん:2000/01/16(日) 22:05
Visual C++ でなくて DJGPP を使用しているので、残念ながらわ
かりません(笑)。
8>1:2000/01/16(日) 22:40
どういう目的で使うのかわかんないんと
あんまり良いアドバイスは出来ないような・・・
91:2000/01/17(月) 20:05
自作プログラム内で独自のマクロ定義ファイルを使用するために、
構文解析モジュールを作成しています。
そのマクロ言語内の変数の型を(マクロ作成者の)便宜のために
Variant 型にするつもりです。
(つまり、型宣言なしで変数が自由に使えるようにしたい。)
10某ランド
ああ、それいいよ。簡単なテキストマクロでも作っとくと楽なんだよね。
色々作ったけど、自分のは恥ずかしくて見せられないからゴメン。

今だったらルビーの公式本なんて参考になるんじゃないかな。
まだ読込んでないけど、変数の表現方法とかけっこう詳しそうだ。
まつもとひろゆき・アスキー出版だったと思う。