- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/
- 654 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 14:27:13 ]
- 並列化もきっと意味ないだろうなぁ
- 655 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 14:27:21 ]
- calcbuf[i] = readbuf[i]*A+B;
if(calcbuf[i]<0) writebuf[i]=0; else if (calcbuf[i]>255) writebuf[i]=255; writebuf[i] = (uint8)calcbuf[i]; ↓ tmp = readbuf[i] * A + b; if (tmp < 0) tmp = 0; if (tmp > 255) tmp = 255; writebuf[i] = (uint8) tmp;
- 656 名前:デフォルトの名無しさん [2009/06/05(金) 14:29:14 ]
- 2008-04-30 大容量ファイルI/Oの効率について 其の弐
FILE_FLAG_NO_BUFFERING 指定のないReadFile() -赤線- リニアにアクセス速度が低下していく。大容量ファイルのリードを行うことに対して Windows の I/O バッファリングアルゴリズムにパフォーマンスバグがあると思われる。 FILE_FLAG_NO_BUFFERING を指定すれば回避できるとはいえ、 コンシューマ市場向けにもTBクラスのストレージが出回ってる昨今、これは致命的な問題だと思う。 FILE_FLAG_NO_BUFFERING 指定のあるReadFile() -緑線- 2GiB の読み込みに概ね12-13秒台の高速でコンスタントなアクセス速度を誇る。(・∀・)イイ!! img.f.hatena.ne.jp/images/fotolife/w/wraith13/20080430/20080430231453.png d.hatena.ne.jp/wraith13/20080430/1209565632
- 657 名前:デフォルトの名無しさん [2009/06/05(金) 14:34:48 ]
- bmpではなくjpgなら、アセンブラ化は効果あるだろけど
bmpはサイズがでかいからな。 処理内容が複雑 (ディスク読み込み時間と比べて速すぎない) なら並列化は効果あるだろけど 単純なものをスレッド化すると、スレッドの呼び出し時間がかかり、余計に鈍くなり得る。
- 658 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:59:01 ]
- implementationは実装と訳せばいいのですか?
- 659 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:33:17 ]
- >>656
バッファリングなしの非同期読み取りだともう少し速くなるのだろうか?
- 660 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 21:24:22 ]
- >>658
そうです^^
- 661 名前:658 mailto:sage [2009/06/05(金) 21:31:46 ]
- >>660
ありがとうございます。
- 662 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:54:30 ]
- 関数を呼びまくるとスタックオーバーフローを起こします。
スタックを増やす以外にどんな解決方法がありますか?
- 663 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 02:01:52 ]
- 関数オブジェクトをヒープに置く。
- 664 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 02:23:44 ]
- >>662
再帰呼び出しが原因ならば、アルゴリズムを工夫して再帰が深くならないようにする。 そうでなければ、ローカル変数域を減らす。特にバッファ。
- 665 名前:デフォルトの名無しさん [2009/06/06(土) 05:33:46 ]
- 配列の要素の組み合わせを出力したいのですが、
実装をどのようにするか迷っています・・・ 配列 int array[10] = {0,1,2,3,4,5,6,7,8,9}; 出力 {0}, {1}, {2}, {3}... {9} {0,1}, {0,2}, {0,3}... {8,9} {0,1,2}, {0,1,3}... {7,8,9} ... {0,1,2,3,4,5,6,7,8,9} このような出力を実現するにはどのようにコードを組めば効率が良いでしょうか?
- 666 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 05:41:25 ]
- ヒント:二重ループ
- 667 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 06:29:22 ]
- なんだよそのヒントw
>>665は一応実装はできるけど 最適な実装ロジックを聞いてるんでしょ。
- 668 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 06:47:20 ]
- いや二重ループが一番のヒントだろ
- 669 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 07:25:49 ]
- >>665
どういう規則で出力するのかさっぱりわからん。
- 670 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 07:37:10 ]
- 桁ごとに、組み合わせを順番に表示してくんだろw
- 671 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 07:56:47 ]
- >>665
効率はしらんが、適当に書いてみた #include <stdio.h> void combi(int n, int pos, int digit, int *array) { int i, j; if(pos==digit) { printf("{%d", array[0]); for(i=1; i<digit; i++) printf(",%d", array[i]); putchar('}'); } else { for(i=n; i<=9; i++) { array[pos] = i; combi(i+1, pos+1, digit, array); }}} int main(void) { int i, array[10]; for(i=1; i<=10; i++) combi(0, 0, i, array); return 0; }
- 672 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:23:21 ]
- printfのfはformattedのfだと聞いたことがありますが、
そもそもformattedってどういう意味ですか? 辞書を引いてもC/C++に適した訳語が見つからなくて。。。
- 673 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:30:09 ]
- 書式に則った
- 674 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:31:42 ]
- >>673
何の書式に則ったってことですか? 自分で指定した"hoge%spi%dyo"だとかそういうことでしょうか?
- 675 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:34:17 ]
- どう考えてもそれしかないと思う。
- 676 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:38:52 ]
- >>675
ありがとうございました。
- 677 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 08:45:47 ]
- >>665
main() { int array[10]={0,1,2,3,4,5,6,7,8,9}; int i,f,set; for(set=1;set<=0x3ff;set++) { putchar('{'); for(i=0,f=0;i<10;i++) if(set & (1 << i)) { if(f) putchar(','); printf("%d", array[i]),f=1; } putchar('}'); } }
- 678 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 10:20:23 ]
- >>677 これは良いな。出力順序が変わるのを何とかしようと頑張ってみたが俺には無理だった
- 679 名前:デフォルトの名無しさん [2009/06/06(土) 15:57:09 ]
- クラス内で動的確保した文字列に、ポインタ渡しでのアクセスは出来ませんか。
- 680 名前:デフォルトの名無しさん [2009/06/06(土) 15:59:10 ]
- >>679
できます
- 681 名前:デフォルトの名無しさん [2009/06/06(土) 16:04:03 ]
- これができません。なぜでしょうか。
#include <iostream> #include <string> using namespace std; class A { public: char *ch; A() { ch=new char [10]; strcpy(ch,"aaa"); } void test(char *p){ p=ch; } }; main () { A x; char *p; x.test(p); cout<<p; }
- 682 名前:デフォルトの名無しさん [2009/06/06(土) 16:06:26 ]
- 自己解決しました。 test(char* &p)にしたら良かったです。
- 683 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:11:36 ]
- char* &pって気持ち悪いなchar*& pがクール
- 684 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:16:08 ]
- いやむしろ、char *&p の方がクール。
理由は宣言構文の仕様上、char が specifier で *&p が declarator だから。 char* p; のように書く人は p と q をポインタにしたいとき char* p, *q; のように非対称に書いたりするので混乱必至。 っていうか宗教^^
- 685 名前:デフォルトの名無しさん [2009/06/06(土) 16:16:56 ]
- それより一引数で参照私の値変更ってのがさ!
- 686 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:23:07 ]
- >>684
> char* p; のように書く人は p と q をポインタにしたいとき > char* p, *q; のように非対称に書いたりするので混乱必至。 そうでもないよ。俺は普段1行目のように書くけど、2行目のようなケースは まず第一に「滅多に書かない」し、もし書く時は char *p, *q; って書く。 まぁ、宗教。
- 687 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:26:38 ]
- そもそも*&ってのが気持ち悪い
ダブルポインタのほうがかっこよくない? まぁ、宗教。
- 688 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:29:15 ]
- Effective C++(第2版)には ** 使うくらいならどうして *& を使わないのかって書いてあるから
*& でいいんじゃない?っていうか、>>681のような質問って時々出てくるけど その設計にどういうメリットがあるのかしら? ポインタの管理はクラスの外でやってるし、そもそも内部の詳細を公開しているし・・・
- 689 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:29:33 ]
- 創価学会最高!
- 690 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:09:37 ]
- そこまでするならmulti_arrayみたいにラップするわ
- 691 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 18:20:00 ]
- デバッグしてるときにちょっと気になったんですが
他人の作ったメソッドや関数(例えばSTLやboost)が投げる可能性のある例外を調べる方法は仕様を読む以外ないんでしょうか? 強制的に例外を投げさせるオプションみたいなものがあるんでしょうか? コンパイラはVC++EE2008を使っています
- 692 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 18:27:02 ]
- つ grep
- 693 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:29:11 ]
- 複文マクロは
do{〜;〜;〜;}while(0) とすると良いとききました。 しかしこれだと返り値を持たせられないため、関数形式のマクロが書けません。 複文マクロでありながら、返り値を持たせる方法はありませんか?
- 694 名前:デフォルトの名無しさん [2009/06/06(土) 22:34:00 ]
- インライン使っとけ。 複雑なマクロつかうよりいい。
エラーがわかりやすい。 実行時間が計測できるなどりメリット。
- 695 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:34:51 ]
- >>694
インライン関数などの知識は十分あるんですが、 どうしても変なマクロが書きたいんです。 マクロでしかできない変な処理なんです。
- 696 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:46:21 ]
- カンマ演算子でなんとかするのはもう考えた?
- 697 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:48:56 ]
- >>696
ありがとうございます。 もう考えてあります。 ただ、try catchブロックを盛り込みたく、それがカンマ演算子に合わせられないのです。。。 そしてマクロでしかできない処理というのは「マクロ引数から#で文字列化する」というような いわばリフレクション的な処理も含んでいる物だからです。 まあ無くても支障ないのですが、一般化して再利用可能にしておいたら便利かなと思って 変態マクロに挑戦しているところです。
- 698 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:50:26 ]
- 引数っぽくすれば
#define FOO(X) do{;;(X)=hoge;}while(0)
- 699 名前:697 mailto:sage [2009/06/06(土) 22:55:03 ]
- >>698
ありがとうございます。 副作用を持たせるわけですね。 最終手段として考慮します。 しかし当面はもうちょっと挑戦してみます。 返り値はbool型になる予定でして、疑似関数の形の方が分かりやすいので。 関数テンプレートや文字列結合演算子、無名構造体など、 もちえる言語仕様の知識をフル活用してみます。
- 700 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:20:30 ]
- void func(float a[]){
int size=sizeof(a)/sizeof(float); } これでsizeに配列aの個数が入ると思ったのに1になる。何で?
- 701 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:31:22 ]
- aはfloatへのポインタに変わったから
- 702 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:31:55 ]
- サイズが分からないから
void func(float a[10]){ とかにすれば10って出るはず
- 703 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:34:47 ]
- void func(float a[]){
としても void func(float *a){ となるから >>702 なんねーよばか
- 704 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:35:53 ]
- ありがとう。float[10]ってしないと駄目なのか
でもそれだとint size=10;ってすることと一緒だから意味無いよね 受け取った配列の数によって処理を変えたいんですがどうすればいいですか?
- 705 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:38:08 ]
- それこそマクロっぽくするべき
#define func(x) func_(sizeof(x)/sizeof(float)) void func_(unsigned size);
- 706 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:39:11 ]
- >>704
二引数にして大きさを渡すする ものすごい馬鹿みたいに思うかもしれんが memsetやらfreadやらあるように領域の大きさを渡すのは普通
- 707 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:39:19 ]
- void func(float *a, size_t n) { }
#define numberof(array) (sizeof(array)/sizeof(array[0])) float foo[10]; func(foo, numberof(foo));
- 708 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:48:33 ]
- ありがとうございます。サイズを引数として受け取るしかないんですね
当たり前なんだろうけど、これにはちょっとびっくり。 普通に分かるものだとばかり思ってた
- 709 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 00:27:30 ]
- 商業ソフトだとメモリ確保とかでガチガチにtry catchするんでしょうか?
- 710 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 01:10:01 ]
- メモリ確保失敗はアプリレベルではどうにもならないからOSに例外投げてしまう。
という考え方もある。
- 711 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 01:14:08 ]
- 限界になる前に、そろそろメモリが足りません言い出すソフトもあるなぁ・・・・
- 712 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 02:22:58 ]
- OSに例外投げたらどうなるんだ?つか、そんなことできるのか?
- 713 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 02:57:00 ]
- 他人のソースコードを読んでいってもさっぱり頭に入ってきません。
何かソースコードを読む際のポイントとかあるんでしょうか。
- 714 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 03:00:11 ]
- コメントを読んだり、
読んでる関数の中身までは読まずに、大まかな流れを先に確認する。
- 715 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 03:37:32 ]
- >>713
doxygen(Graphviz)で関係のグラフ化オヌヌメ
- 716 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:54:46 ]
- テンプレートの型を一部の型に限定したい(たとえばunsignedの各種整数型のみ)場合は
template<typename T> class HOGE; template<> class HOGE<unsigned char> {...;}; template<> class HOGE<unsigned short> {...;}; template<> class HOGE<unsigned long> {...;}; template<> class HOGE<unsigned int> {...;}; のように本体を書かずに、特殊化のほうをいちいち全部書くしかないんでしょうか?
- 717 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 11:53:12 ]
- traits
- 718 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:20:01 ]
- C++にて。
同じ副作用を保ったまま、式を文にすることは出来ます。 セミコロンを付ければ良いだけです。 例 x=3ならx=3;とすればよい。 しかし同じ副作用を保ったまま、文を式にすることは出来ますか? その際の式の値は何だって良いとして。 例 while(flag){++x;} を ???
- 719 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:50:35 ]
- >716
class の中身の方は型によって変わらないと仮定して、 #include <boost/utility/enable_if.hpp> #include <boost/type_traits/is_unsigned.hpp> template<typename T, typename Enable = void> class HOGE {}; template<typename T> class HOGE<T, typename boost::enable_if<boost::is_unsigned<T> >::type> { // 何か }; 他の型にするなら boost::is_unsigned を適宜変更すれば OK。 型をべた書きするなら↓なんてのも可能。 #include <boost/mpl/set.hpp> #include <boost/mpl/has_key.hpp> template<typename T> class HOGE<T, typename boost::enable_if< boost::mpl::has_key< boost::mpl::set< unsigned int, unsigned char >,T> >::type> { // 何か }; 中身も変わってくるなら >717 の通り traits でまとめる。
- 720 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:42:55 ]
- >>718
そこを関数にする。 そうすれば関数呼出式になる。
- 721 名前:718 mailto:sage [2009/06/07(日) 14:31:24 ]
- >>720
あーなるほど。 ありがとうございます。
- 722 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:39:05 ]
- for each 処理を自前で作りたい。
Sentinelを付加する方法でなんかいいアイデアない?
- 723 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:43:09 ]
- CかC++かくらい書け。
もっとも、C++ならSTL使え、だが。
- 724 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:57:23 ]
- もっと洗練されたライブラリが必要だと思うんだ
- 725 名前:722 mailto:sage [2009/06/07(日) 19:00:27 ]
- STL様 i=begin;while((function(i++),i)<=end); は偽物foreach
i=begin; end+1=eoloop; while(function(i++)); ^^^^^^^^^←この部分
- 726 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 19:01:00 ]
- 一応Qt(C++用ライブラリ)にforeachはある
それを参考にしろとは言わんが
- 727 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 21:22:20 ]
- インターフェースクラスがクールに感じたんだけど、これってなにかマイナス面はある?
今作ってるプログラムをこれ使って大幅に書き換えようかなと思ってるんだけど
- 728 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 21:39:06 ]
- >>727
ソースコードの量が増える 保守するとき読めればいいが そんな保証などない 将来性にかけて拡張性に優れた設計にするには 優れた設計能力が必要 後からの変更は1からのやり直し
- 729 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 21:48:20 ]
- >>727
Qtのこと? 俺もQtの設計は美しいと思ってるし、 いまさらMFCやろうとしてる(まずいないがw)やついたらQtを紹介してる マイナス面は、以前はGPLだったけどそれも変更になってLGPL 不満といえばdllのサイズぐらいかな? マルチOSなのもおいしいところ
- 730 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 21:56:43 ]
- >>725
std::for_eachもいやならBOOST_FOREACHはだめ?
- 731 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:02:31 ]
- >>729
そのインターフェイスじゃないだろ
- 732 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:11:32 ]
- QtってGUI専用だと勝手に思っていたが、
GUI以外の事も出来るの?
- 733 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:18:02 ]
- >Qt
何故か俺の中で、 フジコフジオのイメージが払拭できない
- 734 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:21:55 ]
- >>732
コンテナ、ネットワーク、XML、データベースとか一通り 機能制限はあるが組込み向けやXサーバーなしでもGUIが使えたり
- 735 名前:732 mailto:sage [2009/06/07(日) 22:24:51 ]
- >>734
すげーー マジかよ。 LGPLだと商用利用はしんどいか? Staticリンクしちゃうとオープンソース強制だっけ?
- 736 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 22:55:36 ]
- >>735
LGPLだと静的リンクはアウトだね 動的リンクなら商用非公開おk
- 737 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:03:14 ]
- LGPLだと、リバースエンジニアリングの拒否の禁止かな。
- 738 名前:732 mailto:sage [2009/06/07(日) 23:06:54 ]
- リバースエンジニアリングはどうせされるんだろうし
そんなの禁止しても意味ないだろうけど・・・。 >動的リンクなら商用非公開おk これはつまりDLLを付属させて配れってこと?
- 739 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:14:11 ]
- >>735
強制じゃないけど staticリンクでその条件を満たすのはかなりしんどい
- 740 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:14:53 ]
- >>738
そうだよ配っていいんだよ
- 741 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:28:13 ]
- ってことは
「QtのDLLを付属させてスタティックリンクしないようにするかぎり」 無償でクローズドソースの商用利用が可能 ということか。 Qtいいな。 …ちょっと考えてみようかな。
- 742 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 02:12:57 ]
- >>715
分かりやすい解説サイト教えてください
- 743 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 02:20:00 ]
- >>742
ggrks 相当前からあるソフトで、情報も腐るほどあるぞ ちなみにそのウィザードもQtでできてる
- 744 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 03:44:59 ]
- C++のテンプレートについて教えて
クラスとどう違うんだ?
- 745 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 03:49:36 ]
- 次元が違う
- 746 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 04:18:25 ]
- 違いすぎて逆に説明が困難だな。
- 747 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 04:19:38 ]
- 訂正
C++のテンプレートについて教えて やっぱクラスとの違いじゃなくてどういう時に使うのか どんなニーズによってできたのか教えて
- 748 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 04:27:42 ]
- 型が違うだけで同じような処理を何回も書かないで済むように
- 749 名前:デフォルトの名無しさん [2009/06/08(月) 06:46:52 ]
- 今年女子大に入ったばかりのゆきこと言います。
C++を学びたいのですが、どの本がお薦めでしょうか?
- 750 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 06:47:04 ]
- >>744
天と地ほど違うと思うけど。 [タイヤキを作るための金属の鋳型] と [食べられるタイヤキ] の違い。ぜんっぜん違う。
- 751 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 06:56:11 ]
- >>742
このスレに行け。 【コメント】doxygen【コンソメ】 ttp://pc12.2ch.net/test/read.cgi/tech/1212144627/ オススメは以下。 Graphviz ttp://www.graphviz.org/ doxygenの文字化け対策 - 僻地のプログラマkmt-t - わりとどうでもいい日記 1.1 ttp://d.hatena.ne.jp/kmt-t2/20090403/1238718375 Let’s use doxygen! ttp://www.fides.dti.ne.jp/%7Eoka-t/doxygen.html 無題ドキュメント ttp://www.sat.t.u-tokyo.ac.jp/~tetsuya/homeNew/research/Tips/doxygen.htm SourceForge.net: sakura-editor ≫ DoxygenComment ttp://sakura-editor.wiki.sourceforge.net/DoxygenComment Doxygenマニュアル ttp://www.doxygen.jp/manual.html Doxygen公式 ttp://www.doxygen.jp/
- 752 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:12:17 ]
- >>750
それクラスとインスタンスの違いでなくて? テンプレートはその鋳型を付け替えるとタコ焼にも今川焼きにもなる台とか
- 753 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:03:19 ]
- 型チェックしてくれるマクロとでも思えば。
- 754 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:56:01 ]
- なんだかtemplateってbindに似てるね
|

|