■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

C++相談室 part31
751 名前:デフォルトの名無しさん :04/06/21 23:12
あえて思い切って、高度で煩雑な規格の使用を制限して、
HSPを使用し、多数派PGの理解レベルを優先したとしても、
決して資源の無駄にはならないだろう。

752 名前:デフォルトの名無しさん :04/06/21 23:15
>>751
規格票が理解できねって? ああ、そりゃお気の毒に・・・

753 名前:デフォルトの名無しさん :04/06/21 23:19
だったらわざわざここに来る必要は無い。
のぞいて荒らしてることろを見ると、少しはやってみたいんだろ。

だったら大人しく教えて下さいといいなさい。

754 名前:デフォルトの名無しさん :04/06/21 23:19
>>752
ネタにマジ煽りされても困るなぁ。

なんつーかさぁ、もうちょっと心に余裕持てよ。

755 名前:デフォルトの名無しさん :04/06/21 23:22
でもさ、いまどき C++ で能無しがこなせる業務あるかな。
ドライバ書きとかゲーム書きとか、あんまヘボだと言語がどうとかいう以前に業務が難しい領域が多くない?



・・・・とオモタけど携帯のソフトがあったか・・・

756 名前:デフォルトの名無しさん :04/06/21 23:23
3日前からずっとやってない?

757 名前:デフォルトの名無しさん :04/06/21 23:27
>>753
大人しく教えて下さい

で、何を教えてくれるの?そもそもお前はどのレスに言ってるの?

758 名前:デフォルトの名無しさん :04/06/21 23:30
>>757
なにが教えて欲しいの?

759 名前:デフォルトの名無しさん :04/06/21 23:31
C++やると性格が歪むって本当らしいですね?

760 名前:デフォルトの名無しさん :04/06/21 23:35
>>759
あるひとつの問題に対してアプローチがいくつもあり、
それらひとつひとつが曲者だからね。
追いかけるのに疲れ果てて性格が歪むのも無理はない。

これは、C/C++をマスターしていると思っている人間ほど顕著である。
いちいち他人のコードを自分流に修正せずには
いられない脅迫観念にとりつかれているからだ。合掌。

761 名前:デフォルトの名無しさん :04/06/21 23:36
>>759
規格票が理解できねって? ああ、そりゃお気の毒に・・・

762 名前:デフォルトの名無しさん :04/06/21 23:40
>>760
ひとつしかない方が異常だとおもうけど。

763 名前:デフォルトの名無しさん :04/06/21 23:42
よっぽど悔しかったらしいなw

764 名前:デフォルトの名無しさん :04/06/21 23:48
>>758
何が教えられるの?

765 名前:デフォルトの名無しさん :04/06/21 23:50
>>742は、問題が起きたら俺が泥をかぶればいいという気質の人間だろう。
さもなくば、事情を知らない煽りか?
前者であれば、口は悪いが心の熱い人間であるといえよう。
実際問題、無能PGが配置されてしまったとして、
そのフォローに奔走するのは結局>>742自身だからである。

>>740は、意外と冷酷な人間だろう。
途上国の安価PGに下請け発注することを専らとしているに違いない。

766 名前:デフォルトの名無しさん :04/06/21 23:53
742も740も俺の自演ですが何か?

767 名前:デフォルトの名無しさん :04/06/22 01:19
>>725
私は直前のIPを保持して同値ならカウントアップしないようにしています。
クッキーは好きじゃない。
自分自身が参照したときもカウントアップしないようにするといいかも。
こっちは自分なのでクッキーでもいいかな。
それよりもC++でCGI作らせてくれることがうらまやしい。
SAKURAはC止まりなので。

768 名前:デフォルトの名無しさん :04/06/22 19:38
delete [] a, b;
とした場合ってaもbも配列扱いのdeleteになるのでしょうか?


769 名前:デフォルトの名無しさん :04/06/22 19:49
>>768>>733

delete a,b; とし、a,bをクラスにして、
bのデストラクタが呼ばれない事を確認してみろ。


770 名前:デフォルトの名無しさん :04/06/22 20:03
>>768
演算子の結合規則くらい調べて来い

771 名前:デフォルトの名無しさん :04/06/22 20:12
delete [] (a,b)としたところで何の問題の解決にもならん気がするが。

772 名前:デフォルトの名無しさん :04/06/22 20:24
>>771
768は何かの「解決」を求めているか?

773 名前:デフォルトの名無しさん :04/06/22 21:40
deleteといえば、プログラムが終了になるときは、
特にdeleteで解放しなかった領域も解放されるんですよね?
プログラムが終わった後まで影響しないですよね?

774 名前:デフォルトの名無しさん :04/06/22 21:47
>>773
デストラクタはどうしましょ?

775 名前:デフォルトの名無しさん :04/06/22 21:52
>>773
絶対されるとも言えないし、絶対されないとも言えない

776 名前:デフォルトの名無しさん :04/06/22 22:00
処理系によってはやばいってことですか?
プログラムの終わらせ方としては
普通にmainのreturnで終わる場合やexit()やabort()。
main終わるときにローカルオブジェクトはデストラクタ
呼ばれるんですよねぇ。
exit()を呼ぶと、後処理やってくれるようですが
スタックの巻き戻ししないんで、ローカルオブジェクト
はもれるって話みたいで、例外使うなりしてちゃんと
deleteしたほうがいいんですかね、というかみなさんは
そうしますか?

777 名前:デフォルトの名無しさん :04/06/22 22:01
>>776
>後処理やってくれるようですが

このへん全然ダメ
ちゃんと調べろ

778 名前:デフォルトの名無しさん :04/06/22 22:01
>>773
OS依存。まぁ、普通はプログラム終了時に
リソースは全て回収される罠。

779 名前:デフォルトの名無しさん :04/06/22 22:01
>>773
メモリに関して言えば、多くのOSや環境でその通り。
デストラクタは走らないので、例えばテンポラリファイルを作るクラスなど開放時に
処理が必要なオブジェクトはちゃんと delete する必要がある。

780 名前:デフォルトの名無しさん :04/06/22 22:03
>>778
>OS依存。まぁ、普通はプログラム終了時に

このへん全然ダメ
ちゃんと調べろ

781 名前:デフォルトの名無しさん :04/06/22 22:04
>>776
デストラクタを動作させる必要があるなら、ちゃんと delete する。

「〜ほうがいい」とか言うより、仕様や期待する動作の通りに動くように
プログラムを書けばいいだけだと思うけど。

782 名前:デフォルトの名無しさん :04/06/22 22:11
exitは単に静的オブジェの破棄、バッファフラッシュ、クローズ処理を
行う。atexitで登録した関数も呼ぶ。

783 名前:デフォルトの名無しさん :04/06/23 00:35
どなたか CINT
ttp://root.cern.ch/root/Cint.html
の日本語でのマトモな解説サイトとか御存知だったら教えて下さい。
google先生にお伺いしても大したサイトは引っかからないし、
本は絶版になっちゃってるみたいだし。

このソフトすごいと思うんですけど、マイナーなんですかね。
C++インタープリターってここにいる人達なんかにとってはちょっとしたスク
リプト感覚でC++が使えて非常に便利だと思うのですが。

784 名前:デフォルトの名無しさん :04/06/23 00:58
ttp://www.itworld.com/AppDev/710/swol-0818-regex/

C/C++系のインタプリンタって結構あるんだけどな。

785 名前:デフォルトの名無しさん :04/06/23 01:01
日本人の作者がいるからメールしてみたら?
どこかで聞いたことがある名前だったと思う。

786 名前:デフォルトの名無しさん :04/06/23 09:50
>>784
そこ行ったらspybotが喚き出した。

787 名前:デフォルトの名無しさん :04/06/23 11:09
ご教授お願いします。

VC++6でUnicodeです。

LPTSTR szHoge = new TCHAR(MAX_PATH);
ZeroMemory( szHoge, MAX_PATH * sizeof(TCHAR) );
int nRtn = (GetDlgItem( IDC_EDIT_HOGE ))->GetWindowText( szHoge, MAX_PATH * sizeof(TCHAR) );
LPTSTR lpTgzPath = new TCHAR( nRtn + 1 );
ZeroMemory(lpTgzPath, (nRtn + 1)* sizeof(TCHAR) );
CopyMemory( lpTgzPath, szHoge, nRtn * sizeof(TCHAR) );
delete szHoge;

IDC_EDIT_HOGEのコントロールから取得した文字列をlpTgzPathにコピーするんですが、
delete szHoge; にて例外が発生します。
何がいけないんでしょう・・・?
宜しくお願いいたします。

788 名前:デフォルトの名無しさん :04/06/23 11:15
LPTSTR szHoge = new TCHAR(MAX_PATH);
delete szHoge;



LPTSTR szHoge = new TCHAR[MAX_PATH];
delete [] szHoge;


789 名前:725 :04/06/23 11:47
>>767
サンクスです。
その方法でやってみます。

790 名前:デフォルトの名無しさん :04/06/23 11:53
>>788
グハ orz
サンクス。もう仕事辞めます。

791 名前:デフォルトの名無しさん :04/06/23 12:18
>>790
昼飯くったらまた頑張れ


792 名前:デフォルトの名無しさん :04/06/23 12:22
>>787
誤:LPTSTR szHoge = new TCHAR(MAX_PATH); // 値MAX_PATHで初期化された 1 つの TCHAR を newする
誤:LPTSTR lpTgzPath = new TCHAR( nRtn + 1 ); // 値nRtn+1で初期化された 1 つの TCHAR を newする

正:LPTSTR szHoge = new TCHAR[MAX_PATH]; // MAX_PATH個のTCHARの配列をnewする
正:LPTSTR lpTgzPath = new TCHAR[ nRtn + 1]; // nRtn+1個のTCHARの配列をnewする

だら〜っとで良いので、もういっぺん C++ の本とか読み直しておいた方が余計な苦労せずに済むかも。
あと、szHoge みたいなのはいちいち new しないで、ローカル変数の方が良いと思う。


793 名前:デフォルトの名無しさん :04/06/23 12:41
っていうか、スマートポインタ使えよ

794 名前:デフォルトの名無しさん :04/06/23 13:14
なんでもスマートポインタを使えばいいわけじゃないし、この処理では明らかに不要だろ。

795 名前:デフォルトの名無しさん :04/06/23 13:41
この処理とやらの外側でWin32構造化例外を拾っている可能性はあるからスマートポインタが不要とはいえんな。


796 名前:デフォルトの名無しさん :04/06/23 14:01
>>787
GetWindowTextやCopyMemoryで中身は上書きされるんだからZeroMemoryはいらない
テキストの長さだったらGetWindowTextLengthでわかる

int nSize = (GetDlgItem( IDC_EDIT_HOGE ))->GetWindowTextLength();
LPTSTR szHoge = new TCHAR(nSize);
(GetDlgItem( IDC_EDIT_HOGE ))->GetWindowText(szHoge, nSize);

797 名前:デフォルトの名無しさん :04/06/23 14:04
>>794
deleteミスるぐらいならスマートポインタ使えってことだよ。
っていうか今どきnewとかつかわんよ

798 名前:デフォルトの名無しさん :04/06/23 14:14
スマートポインタ使えとだけ言っても何の疑問も解決しねえだろカス

799 名前:デフォルトの名無しさん :04/06/23 14:17
>>797
>っていうか今どきnewとかつかわんよ

はいはい、脳内「今どき」はあんたの頭の中だけにしときな( ´,_ゝ`)プッ

800 名前:デフォルトの名無しさん :04/06/23 14:22
素で質問です。
new以外に何使えばいいんでしょうか?

801 名前:デフォルトの名無しさん :04/06/23 14:23
>>800
そんな餌で俺様がくまー

802 名前:デフォルトの名無しさん :04/06/23 14:24
前もって全部staticで宣言しておけばいい。
リソースの量を把握できなくていったい何の為のC++プログラマか。

803 名前:デフォルトの名無しさん :04/06/23 14:27
動的に増やさなくちゃいけないから new があるんじゃ

804 名前:デフォルトの名無しさん :04/06/23 14:28
またC厨が暴れているのか。

805 名前:デフォルトの名無しさん :04/06/23 15:06
mallocで十分

806 名前:デフォルトの名無しさん :04/06/23 15:43
>>805
Cスレに(・∀・)カエレ!!

807 名前:デフォルトの名無しさん :04/06/23 16:24
ただ騒ぎたい奴が8割

808 名前:デフォルトの名無しさん :04/06/23 17:18
ポインタの参照 *& ってどんな意味があるのでしょうか?
例えば、void func( char **& ) に参照つけるのはどうしてですか?

809 名前:デフォルトの名無しさん :04/06/23 17:25
>>808
void func( char **&p)
だとしたら、funcでpをいじるんじゃないですか?
*pではなく、**pでもなく。


810 名前:デフォルトの名無しさん :04/06/23 17:25
>>808
普通の参照と同じだが?
void func(char *&rp)
{
static char c = 'd';
rp = &c;
}

char *p;
func(p);

811 名前:デフォルトの名無しさん :04/06/23 17:44
ダイアログ上のフォーカスをTABで移動していって、ボタンにフォーカスが来ると
点線と黒い影が出ると思うんですけど、
そこからSetFocusでフォーカスを別のとこに移動させると
点線だけ移動して、黒い影がボタンに残ったままになってしまいます。
この黒い影を強制的に消すにはどうしたらいいでしょう?

812 名前:デフォルトの名無しさん :04/06/23 17:46
>>811
キミはそれをC++の話題だと思うのか?


813 名前:デフォルトの名無しさん :04/06/23 17:51
>>812
VC++やらMFCの話をここでしてはいけないのですか?

814 名前:デフォルトの名無しさん :04/06/23 17:52
・::std::vector< TCHAR > を使う。

・ATL ないし、MFC を使っているならば、CStringT< TCHAR > を使って、
あらかじめサイズをしてした後で、GetBuffer()

・_bstr_t を使って、SysAllocStringByteLen を使い、領域確保してから、
 GetBSTR() でバッファ取得。だが、この方法はオススメしない。
 


815 名前:デフォルトの名無しさん :04/06/23 17:52
あ、VCのスレがあるんですね。失礼しました。

816 名前:814 :04/06/23 17:53
>>787 へのレスね。

817 名前:デフォルトの名無しさん :04/06/23 17:55
>>813
だめ。氏ね。

818 名前:デフォルトの名無しさん :04/06/23 17:55
ポインタと参照ってほとんど同じものだと思ってました…orz

819 名前:デフォルトの名無しさん :04/06/23 17:56
>>811
Microsoft の Windows の話だと仮定して返事してみる。
黒い影は「デフォルトボタン」の印で、フォーカスとは必ずしも関係ない。
あとはWin32 API スレで続けた方がいいよ。C++ と関係ないし。

>>813
811 はおそらく Windows の UI の仕様に関する質問で、別に MFC も VC++ も関係ないみたいだけど・・・

820 名前:デフォルトの名無しさん :04/06/23 18:36
ん〜、以下のrfuncとpfuncの違いは何なのでしょうか?
それと、rfunc( aaa ) と記述できない事と何か関係ありますか?

#include <iostream>

void rfunc( char *& rp ) {
rp[0] = 'a';
}

void pfunc( char * pp ) {
pp[0] = 'b';
}

int
main( int argc, char **argv ) {
char aaa[100];
char *bbb;
bbb = aaa;
rfunc( bbb );
std::cout << aaa[0] << std::endl;
pfunc( bbb );
std::cout << aaa[0] << std::endl;

return 0;
}

821 名前:デフォルトの名無しさん :04/06/23 18:49
>>820
リファレンスを取る時は実体が必要。aaaは単なるポインタに変換され、それは
実体がない(変数に入っていない)のでリファレンスを取ることはできない。
無理に取ろうとすると一時変数が作られる。

822 名前:デフォルトの名無しさん :04/06/23 18:49
>>820
rfuncもpfuncも引数(この例ではそれぞれrpとpp)に対して操作を行っていないので、
違いが大きく現れない。
rfuncでは、例えばrp = 0;とすると、これがmainのbbbに反映される。
pfuncではこれは起こらない。
このあたりはポインタとの絡みは関係なく参照という物の性質なので、
参照渡しについて復習してみる事をお勧めする。
rfunc(aaa)と書けないのは、aaaがポインタ変数でないから。(ポインタに変換可能であるに過ぎない)

823 名前:デフォルトの名無しさん :04/06/23 18:54
ポインタのリファレンスはむしろこっちの使い方の方が多いな。&pとして呼び出す
手間を省く。

#include <iostream>

void rfunc(char*& rp)
{
 rp[0] = 'a';
}

void pfunc(char** pp)
{
 (*pp)[0] = 'b';
}

int main()
{
 char a[] = "abc";
 char* p = a;

 pfunc(&p);
 std::cout << *p << std::endl;
 rfunc(p);
 std::cout << *p << std::endl;
}

824 名前:デフォルトの名無しさん :04/06/23 18:58
関数の中で引数に対してnewとかしちゃうと、
pfuncの引数のとり方では悲惨なことになりますね。
(まぁそういうことはあまりやらないけど)

825 名前:824 :04/06/23 18:59
あ、もちろん>>820宛です。

826 名前:デフォルトの名無しさん :04/06/23 19:02
ていうかね
void func(T&) と void func(T) の違いなんよ。ポインタとか関係ないんよ。

827 名前:デフォルトの名無しさん :04/06/23 19:11
>>826
わかってるけどその説明じゃ分からない香具師がいるんだよ。頭の固い香具師が。

828 名前:デフォルトの名無しさん :04/06/23 20:53
>>827
>頭の固い香具師が。
下らん質問にしか回答できない半端もんのくせに、
初心者に対してはびっくりするほど態度でかいな。お前。

829 名前:デフォルトの名無しさん :04/06/23 21:01
>>828
>下らん質問にしか回答できない半端もんのくせに、

どうやって俺が下らん質問にしか回答してないとわかるんだ?エスパーか?

830 名前:デフォルトの名無しさん :04/06/23 21:35
s/しか/も/

831 名前:デフォルトの名無しさん :04/06/23 21:41
C++(プログラム)が早く身に付く方法はないですか?

832 名前:デフォルトの名無しさん :04/06/23 21:41
検索エンジンとかで出てくる%83%82%83E%83_%83%81%83%7Cとかいったコードを
デコードする良いアルゴリズムって無いですかね?
自分で作った奴じゃ遅くって。

833 名前:デフォルトの名無しさん :04/06/23 21:42
>>829
恐らくエスパーではなく「こわがり」なのでしょう ;-)

834 名前:デフォルトの名無しさん :04/06/23 21:55
>>831
プリンタで大きく「C++」と印刷した紙を糊で体に貼り付けろ。

835 名前:デフォルトの名無しさん :04/06/23 22:05
>>834
つまんね

836 名前:デフォルトの名無しさん :04/06/23 22:11
>>831
パイロットに早くなれる方法はないかというのと同じくらい果てしない質問だ

837 名前:デフォルトの名無しさん :04/06/23 22:11
給料はパイロットの5分の1くらいしか貰えんが

838 名前:デフォルトの名無しさん :04/06/23 22:17
パイロットって月給手取り300万近いのか?

839 名前:デフォルトの名無しさん :04/06/23 22:24
もらう奴はそれ以上。

840 名前:デフォルトの名無しさん :04/06/23 22:32
Cからのステップアップに最も適した本は何ですか?

841 名前:デフォルトの名無しさん :04/06/23 22:33
>>840
プログラミング言語Ruby


842 名前:デフォルトの名無しさん :04/06/23 22:40
>>840
マジレス

これ!
http://www.research.att.com/~bs/3rd.html
推奨の理由は、自分がこれで憶えたから。
ただし、これは第3版。俺が使ったのは第1版だった。

邦訳はこれ
http://www.longtail.co.jp/errata/

843 名前:820 :04/06/23 23:00
char *pp で ppは、*bbbのアドレスのコピーが入った入れ物で、
char *& rp はbbbその物自体と理解しました。

844 名前:デフォルトの名無しさん :04/06/23 23:40
>>843
おおまかにはそれでよし。

845 名前:デフォルトの名無しさん :04/06/24 01:38
コンストラクタの初期化リストで配列を初期化することはできるの?
やりたいことは、エラーでるけどこんな感じ。
class A {
public:
string s[];
A(): s[0]("0"),s[1]("1") {}
};

846 名前:デフォルトの名無しさん :04/06/24 01:43
>>845
無理無理。

847 名前:832 :04/06/24 08:06
誰かお知恵は有りませんか、、、
文字で変換で調べてるけど見つからず・・・。

848 名前:デフォルトの名無しさん :04/06/24 09:01
>>847
JavaScriptなら変換関数あるから簡単だよ。
C++なら自分で作ればいいし。アルゴリズムも何も、先頭から順に見て%見つけたら変換するだけだしね。

849 名前:832 :04/06/24 09:37
>>848
いや、出来るというか出来てるんですが結構遅くて。
こういうものは結構昔から使われているだろうから
何か良いアルゴリズムは無いかなぁと思う次第です。

850 名前:デフォルトの名無しさん :04/06/24 09:38
>>848
相手にすんな。
「自作だと遅い」とか言ってるが、C言語で遅く作る方が難しい。
本当は作ってもいないのに知恵を拝借したいだけだろう。
あるいは過去ログコピペ荒しかもしれない。

851 名前:デフォルトの名無しさん :04/06/24 09:41
自作コードのパフォーマンスについて評価する術を知る者が、
この程度のアルゴリズムでつまづくはずがない。

よって、釣り確定。

852 名前:デフォルトの名無しさん :04/06/24 10:08
>>849
その遅いコードとやらはどうせ8,9行だろ貼って見せろ。

853 名前:デフォルトの名無しさん :04/06/24 10:18
>>832=>>848=>>852

自演して楽しいもんなのか?
スレ違いだし。

854 名前:デフォルトの名無しさん :04/06/24 10:20
851=852=853

855 名前:832 :04/06/24 10:28
これです。もっと良い方法あると思うんですけどね。
BOOL URLdecode(char *in, char* out)
{
char hex[3] = { 0 };
char *p;
while (*in) {
if (*in != '%')
*out = *in;
else {
++in;
p = in;
if (*p >= '0' && *p <= '9' || *p >= 'a' && *p <= 'f' || *p >= 'A' && *p <= 'Z') {
hex[0] = *p;
++p;
if (*p >= '0' && *p <= '9' || *p >= 'a' && *p <= 'f' || *p >= 'A' && *p <= 'Z') {
hex[1] = *p;
*out = strtol(hex, &p, 16);
++in;
}
}
else
return FALSE;
}
++in;
++out;
}
*out = '\0';
return TRUE;
}

856 名前:デフォルトの名無しさん :04/06/24 10:35
url エンコード define
でぐぐれ

857 名前:デフォルトの名無しさん :04/06/24 10:36
url エンコード include
のほうがよいかも

858 名前:デフォルトの名無しさん :04/06/24 10:40
デコードだった


859 名前:デフォルトの名無しさん :04/06/24 10:43
なんだ、真性だったか。>>832

何と比較して遅いのかが知りたいところだな。

860 名前:デフォルトの名無しさん :04/06/24 10:44
>>855
URLdecode って名前つけてるな
それで検索しなかったのか?

861 名前:デフォルトの名無しさん :04/06/24 10:50
Cから始めて15年、strtol() なんて使ってるプログラムは初めて見た。
確かに遅そうなコードで、しかもバグがあるね。


862 名前:832 :04/06/24 10:50
>>856
幾つか見て見ましたが定石みたいな物は無いみたいですね。
それでも自分の作ったやつよりは速そうなのでそれを使ってみることにします。


てか、URLdecodeで調べれば一発だったんだ。
文字変換で調べまくってたのはあほだった。。。
関数名に同じの使ってるのもあるし、、、orz

863 名前:デフォルトの名無しさん :04/06/24 10:52
>>855
ifの比較は遅すぎ。テーブル検索するように変更。
strtolは遅すぎ。自前で書き換え。

864 名前:デフォルトの名無しさん :04/06/24 11:03
テーブル検索って何だ?

865 名前:デフォルトの名無しさん :04/06/24 11:08
>>864
isdigit()などの実装しらんのか?

866 名前:デフォルトの名無しさん :04/06/24 11:10
BOOL URLdecode(const char *in, char* out)
{
char hex[3] = { 0 };
int i = 0, j = 0;
while (in[i]) {
if (in[i] != '%')
out[j++] = in[i++];
else {
if ( isxdigit(in[i+1]) && isxdigit(in[i+2])) {
hex[0] = in[i+1];
hex[1] = in[i+2];
out[j++] = strtol(hex, 0, 16);
i += 3;
}
else {
out[j++] = in[i++];
out[j++] = in[i++];
}
}
}
out[j] = '\0';
return TRUE;
}

ほれ。ってもういいのか。

867 名前:デフォルトの名無しさん :04/06/24 11:11
C++と関係ないじゃん。Cスレに逝ってくれよ!
夏厨の季節には少し早いはずなんだが。

868 名前:デフォルトの名無しさん :04/06/24 11:12
>>865
isdigit()などの実装がひとつだとでも言うのか?

869 名前:デフォルトの名無しさん :04/06/24 11:16
ここがいいよ
C言語のCGIを語りつつ普及するスレ
http://pc5.2ch.net/test/read.cgi/php/1048393217/

870 名前:864 :04/06/24 11:17
>>865
ひょっとして、char型の256個配列を用意するとか?

871 名前:デフォルトの名無しさん :04/06/24 11:23
>>868
粘着厨が。氏ね

872 名前:864 :04/06/24 11:25
ちなみにMSDNには大嘘が書かれている。(以下抜粋)

http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_character_classification.asp
通常、文字分類ルーチンは、自作のテストより高速です。たとえば、次のコードは isalpha(c) を呼び出した場合より遅くなります。
if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
return TRUE;
(抜粋ここまで)

などと書かれている。お前ら、実際に試してみろ。
上のコードとisalpha()をReleaseビルド版で試すと、自作コードの方がisalpha(c)より速いことを確認できるだろう。

873 名前:デフォルトの名無しさん :04/06/24 11:27
const char codetbl[] = "0123456789ABCDEF";

874 名前:デフォルトの名無しさん :04/06/24 11:27
>>872
( ´,_ゝ`)プッ
嘘つきはお前だよ

875 名前:デフォルトの名無しさん :04/06/24 11:28
そんなの、CPUとメモリやキャッシュ速度によって如何様にも変わるから
MSDNも872も正しくない

876 名前:デフォルトの名無しさん :04/06/24 11:30
>>873
そんなの何の意味も無い。

VC6のランタイムだと、
#define isdigit(_c) (MB_CUR_MAX > 1 ? _isctype(_c,_DIGIT) : _pctype[_c] & _DIGIT)
こんな実装になってる。_isctypeもまたシンプルでない実装になってるし。

877 名前:デフォルトの名無しさん :04/06/24 11:31
>>874
いいから試せ。
漏れは、GCCとVC6で逆転を確認している。VC7は試してない。

878 名前:デフォルトの名無しさん :04/06/24 11:34
>>877
だから試してから書いてんだよ。激遅。CPUの違いぐらいで吸収できる差とは
思えん。

879 名前:デフォルトの名無しさん :04/06/24 11:35
相変わらず、C++の領分から外れたり、話題の程度が低くなったりすると
俄然盛り上がるな。

880 名前:デフォルトの名無しさん :04/06/24 11:38
低レベルな争い

881 名前:デフォルトの名無しさん :04/06/24 11:44
関数内で宣言した変数ってスコープの関係で、関数から出ると使えなくなるんでしょ?
その変数を返り値にした場合、呼び出し元で使っても大丈夫なの?
呼び出し元で返り値をすぐに変数に代入すれば安全が保証される?
スコープなぞ

882 名前:デフォルトの名無しさん :04/06/24 11:48
>>879>>880
だって煽ると面白いんだもん。やめられんよ。(゚∀゚)アヒャ

883 名前:デフォルトの名無しさん :04/06/24 11:50
>>878
ちゃんとinline関数とかマクロにしたか?
漏れの環境だと、isdigit():自作コード=5:1だぞ(VC6)。

884 名前:デフォルトの名無しさん :04/06/24 11:51
>>878は無知の煽りか?

885 名前:デフォルトの名無しさん :04/06/24 11:52
>>883
それぐらいちゃんとしてるっつーに。しつこいな。

886 名前:デフォルトの名無しさん :04/06/24 11:53
>>884
俺がどのスレのどのレスで煽ってるかはどこにも書いてないのだが・・・・
またエスパーか?

887 名前:デフォルトの名無しさん :04/06/24 11:57
>>878
コンパイル環境と所要時間の比ぐらい示したらどうか?
劇遅でも数値ぐらい示せるだろ。

888 名前:883 :04/06/24 12:03
こまかいけど訂正

isdigit()じゃなくて、isalpha()

889 名前:872 :04/06/24 12:15
>>874>>878>>885
嘘つきな俺を啓蒙してくれよ。今ひとつ納得できないもんでな。

890 名前:デフォルトの名無しさん :04/06/24 12:18
>>881
ダメ。すぐもなにも元よりスコープ外の物に保障はない。

891 名前:デフォルトの名無しさん :04/06/24 12:21
class cTemp{
………
}

class cAdv : public cTemp{
………
}

という感じでクラスを宣言して

cTemp *Test = new cAdv();

delete Test;

↑のコードを実行するとcAdvのデストラクタは実行されないみたいなんですが、
まちがっていますか?継承元ポインタのポインタをdeleteすると
継承元のデストラクタしか実行されないのかっていうことなんですが

892 名前:デフォルトの名無しさん :04/06/24 12:25
また、virtualに戻るのか…

893 名前:デフォルトの名無しさん :04/06/24 12:39
>>891
間違ってない。そういう仕様だ。

894 名前:デフォルトの名無しさん :04/06/24 12:42
>>889 isa1>isa2=isalpha
#include <stdio.h>
#include <ctype.h>
#include <assert.h>

const int alpha = 1;
int table[256];

maketable()
{    int i;
    for (i = 'A'; i <= 'Z'; i++) table[i] |= alpha;
    for (i = 'a'; i <= 'z'; i++) table[i] |= alpha;
}
int isa1(int c)
{ return table[c] & alpha; }
int isa2(int c)
{ return ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z')); }
int measure(int(*f)(int), int times)
{    char s[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i, j, t = clock();
    for (i = 0; i < times; i++) for (j = 0; j < sizeof(s) - 1; j++) assert( f(s[j]) );
    return clock() - t;
}
main()
{    maketable();
    printf("%dms.\n%dms.\n%dms.\n", measure(isa1, 1000000), measure(isa2, 1000000), measure(isalpha, 1000000));
}


895 名前:872 :04/06/24 12:44
>>880
>低レベルな争い

そうだ。
低レベルで、かつ、ループの中で何千・何万回も行うかもしれない重要な処理だ。
スレ違いなのは認めるが、if構文や自作コードが遅いかどうかは極めて重要だろ?

896 名前:デフォルトの名無しさん :04/06/24 12:52
>>895
センスが無いのか読解力がないのか微妙な1〜2行目はともかく、
> スレ違いなのは認めるが
わかっているようなので終了ですね ;-)

897 名前:872 :04/06/24 13:22
>>894は、>>878.>>885とは別人かな?
inline関数やマクロを使ってないみたいだし。

それはそうと、>>894のコードを自環境(VC6)でやってみた。
(一部コンパイルが通らない部分やassert()除外などの修正した。)
297ms.
360ms.
343ms.
自環境ではテーブル検索型が最も速かった(isa2>isalpha>isa1)。

述語関数的な用途だと確かに標準ライブラリ関数が威力を発揮する。
自分が>>883で使ったソースでも非インライン・非マクロの場合、
標準のisalpha()に惜敗だった。差は5〜10%ほど。

いずれにせよ、>>878が触れたような【CPUの違いぐらいで吸収できない格差】が得られなかった。
>>878の劇遅に関するレポートが見たいところだな。

898 名前:デフォルトの名無しさん :04/06/24 13:35
VC6なら-Ob2かな、これでインライン展開されたはず。
isa1 140ms
isa2 190ms
isalpha 670ms
くらいになった

899 名前:872 :04/06/24 13:59
>>898
なぬ?
関数アドレス渡しでもinline処理が使えるとは知らなかった。・・・orz

0ms.
0ms.
265ms.
・・・アレ?スマソ。ソース修正の仕方が悪く余計な最適化されてしまってたみたい。
そんなわけで余計な最適化されないように修正した。


〜最終結果〜
●非インライン・非マクロ(Ob2なし)
281ms.
375ms.
359ms.
>>897とほとんど同じ。

●インライン(Ob2あり)
78ms.
141ms.
500ms.
これも、テーブル検索型が最速だ。

900 名前:899 :04/06/24 14:05
興味深いのは、Ob2指定でisalpha()がかえって遅くなっているところだ。
不思議だが、この辺はコンパイラ依存が強そうだ。
VC7やgccでまた違った結果になる悪寒。

901 名前:デフォルトの名無しさん :04/06/24 14:07
cygwin + gcc3.4.0 (-O3)だとこうなった。

453ms.
500ms.
547ms.


902 名前:デフォルトの名無しさん :04/06/24 14:10
俺もやってみた。

Borland-C++5.6.4
-Od(最適化なし)
454ms.
578ms.
765ms.
-Ox(最大限最適化)
422ms.
516ms.
703ms.

Pen4 2.8G + WindowsXPSP1

腐った某ランドのコンパイラでもテーブルが最速である事が判明。

903 名前:872 :04/06/24 15:12
漏れは以前、このスレに、「車輪の再発明はよくない」とか書き込んた者なのだが、
コンテナの再発明と、グローバル関数の開発は別だと思っている。

このスレを独壇場にしてスマンかった。
ムシャクシャしてやった。今は反省している。

904 名前:デフォルトの名無しさん :04/06/24 15:16
>>903
そう思うなら氏ね

905 名前:デフォルトの名無しさん :04/06/24 16:18
車輪を再発明する必要はないが、出来の悪い車輪を改善する必要は時としてある。

906 名前:デフォルトの名無しさん :04/06/24 16:31
まあ、今回のケースはisxdigitを迂回する必要があるかどうか疑問だけどな

907 名前:デフォルトの名無しさん :04/06/24 16:59
例外規則って何かに使われてるんですか?
書いても何も得しないんでしょうか?
void Process() const throw();
のthrow()の部分。

908 名前:デフォルトの名無しさん :04/06/24 19:42
デザインパターンのStateパターンって、
継承で実装するよりも、templateと特殊化で実装
した方が楽な気がしますが、何か問題あるでしょうか?

909 名前:デフォルトの名無しさん :04/06/24 19:59
>>908
それで動的に出来るのか?

910 名前:デフォルトの名無しさん :04/06/24 20:04
isalphaはロケールを見て適したテーブルを引く、ということをVCはやってたから (間違ってたらゴメン)
ASCIIコードのみを考えるなら、自作のほうが早くなるのかも寝。

911 名前:デフォルトの名無しさん :04/06/24 20:08
*BaseState に代入できませんな…orz
コーディングは繰り返しが出てくるくせに…

912 名前:デフォルトの名無しさん :04/06/24 20:21
>>910
テストしてみたけど、isalphaだけだとうまくいかない。
(下記の後者のどこがいけないのでしょうか?)

setlocale(LC_CTYPE,"japanese");

//これはOK
for(int i=0;i<=0xFF;i++){
if( !( isa2(i) == ( (isascii(i & 0xFF) != 0) ? (isalpha(i & 0xFF) != 0 ) : (false) ) ) )
printf("isa2(%d)=%d,isalpha(i)=%d\n",i,isa2(i),i,isalpha(i));
}

//これだとなぜかうまくいかない
for(int i=0;i<=0xFF;i++){
if( !( isa2(i) == (isalpha(i & 0xFF) != 0 ) ) )
printf("isa2(%d)=%d,isalpha(i)=%d\n",i,isa2(i),i,isalpha(i));
}


913 名前:デフォルトの名無しさん :04/06/24 20:30
なんで戻り値を比較してるんだ?

914 名前:デフォルトの名無しさん :04/06/24 20:37
>>890
じゃあ、どうやって戻り値を利用するの?

915 名前:デフォルトの名無しさん :04/06/24 20:38
ローカル変数のコピーを返せばいい

916 名前:デフォルトの名無しさん :04/06/24 20:45
>>912
つうか、プログラムもうちょっとちゃんと書け
ifの条件をすっきりさせて、printfの引数の数を数えなおせ

917 名前:デフォルトの名無しさん :04/06/24 20:48
>>912
半角カナ

918 名前:デフォルトの名無しさん :04/06/24 20:56
>>915
関数の引数に変数を渡したらコピーされるのは知ってるけど、
returnの場合もコピーされた変数が戻る?

919 名前:912 :04/06/24 21:16
>>916
ほんとだね。全然見てなかった...orz

setlocale(LC_CTYPE,"japanese");//これがないときは両方うまくいく

//これはOK
//asciiか判断してからalphaかを確認
for(int i=0;i<=0xFF;i++){
if( isa2(i) != ( (isascii(i) != 0) ? (isalpha(i) != 0 ) : (false) ) )//一致しないとき
printf("isa2(%d)=%d,isalpha(%d)=%d\n",i,isa2(i),i,isalpha(i));
}

//これだとlocale変えてるときに一致しないときがある
//alphaかだけを確認
for(int i=0;i<=0xFF;i++){
if( isa2(i) != (isalpha(i) != 0 ) )//一致しないとき
printf("isa2(%d)=%d,isalpha(%d)=%d\n",i,isa2(i),i,isalpha(i));
}


920 名前:デフォルトの名無しさん :04/06/24 21:43
結局>>872は正直者?

921 名前:デフォルトの名無しさん :04/06/24 21:46
ctype.hのisalphaとlocaleのisalphaは別物だぞ。
ctype.hのisalphaはマクロだから遅くないけど、
localeのisalphaは複雑なコードだから遅い。

922 名前:デフォルトの名無しさん :04/06/24 21:46
つまりC++はCより遅い

923 名前:デフォルトの名無しさん :04/06/24 21:47
>>920
>>872は正直者です。
ちなみに私も正直者です。

924 名前:デフォルトの名無しさん :04/06/24 21:56
ついでに俺も正直者という事にしておいてください。

925 名前:917 :04/06/24 21:56
>>919
一致しない範囲は半角カナなんだってば。

この辺?
> _ismbcalpha
> 英字 c がシングルバイト ASCII 英字(0x41<=c<=0x5A または 0x61<=c<=0x7A)
> または半角カタカナ文字(0xA6<=c<=0xDF)の場合だけ真を返します。

926 名前:デフォルトの名無しさん :04/06/25 07:04
>>918
もどらない。戻り値は使わないようにすべき

927 名前:デフォルトの名無しさん :04/06/25 07:40
>>926
!?


928 名前:デフォルトの名無しさん :04/06/25 09:00
すみません、質問があります
今96×96で14枚つづりのアニメーションをしよう(画像は96×1334)と思っているのですが
アニメーションなんてやったことないので正直わかりません
やり方を教えていただけないでしょうか?
また画像をまとめる際は横長や縦長にするより正方形や長方形にしたほうがいいのでしょうか?
よろしくお願いします

929 名前:デフォルトの名無しさん :04/06/25 09:08
はい次の質問どうぞ

930 名前:デフォルトの名無しさん :04/06/25 09:13
"C++"を二文字動かして"C#"にしろといわれましたがよく分かりません。
すっきりとした回答をお願いします。

931 名前:デフォルトの名無しさん :04/06/25 09:20
>>930
二文字動かすの部分がわかりません。出力例をください

932 名前:デフォルトの名無しさん :04/06/25 09:22
VC++つかってるんですが
Debug warning!
Detected memory leaks
といわれてしまいます
なぜですか?

933 名前:デフォルトの名無しさん :04/06/25 09:32
>>932
メモリリークしてるからです。

934 名前:デフォルトの名無しさん :04/06/25 09:32
>>932
文字通りメモリリークしている。
たぶんdelete忘れ。

VCスレで発見方法教えてもらえ。


935 名前:デフォルトの名無しさん :04/06/25 09:45
>>933
>>934
サンクス

936 名前:919 :04/06/25 10:17
>>925
thx.
923あたりで言ってる意味がやっとわかったw

MSDN不親切すぎ
>is 系ルーチンでは、指定した条件に対するテスト結果は、
>現在のロケールの LC_CTYPE カテゴリ設定に依存します。
>詳細については、setlocale を参照してください。

MINGWの説明(・∀・)イイ!!
http://mingw.biggie.jp/reference/isalpha.html




937 名前:デフォルトの名無しさん :04/06/25 10:29
( 'ー' )イイ!

938 名前:デフォルトの名無しさん :04/06/25 18:51
質問でございます
class A{
class B{
public:
int x;
}
B y;
}
こんな感じでクラスの中で宣言したものをその上のクラスで宣言して使う時
gccではコンパイルできるんですがBorland C++では出来ません。
なにかオプションとかつけたら出来るようになるんでしょうか?

939 名前:デフォルトの名無しさん :04/06/25 20:26
>>928
ISO/IEC 14882:2003,Information Technology―Programming languages―C++
では、アニメーションについて規定していない。
よって、このスレのスコープ外である。

処理系別のスレで質問されるがよい。

940 名前:デフォルトの名無しさん :04/06/25 20:40
>>938
できるだろ。もしかして

int x;
} ←ここに ; が抜けてるだけ、とかいうオチじゃないだろうな?

941 名前:デフォルトの名無しさん :04/06/25 21:34
>>940
それっぽい罠

942 名前:デフォルトの名無しさん :04/06/25 22:55
今晩は厨房いないのかツマラン

943 名前:デフォルトの名無しさん :04/06/25 22:57
↑初登場

944 名前:デフォルトの名無しさん :04/06/26 00:38
iostreamについて質問です。
int main(int argc,char *argv[])
{
FILE *fin = stdin;
if(argc>1) fin = fopen(argv[1],"r");
・・・
}
このように引数が与えられない場合は標準入力を使用し、引数が与えられた
場合にはファイルオープンをするような処理をiostreamを使って簡潔に記述する
方法をご教授ください。

945 名前:デフォルトの名無しさん :04/06/26 00:52
istream* pistr;
ifstream istr;

pstr = &cout;
pstr = &istr;

(*pistr) >> i;

946 名前:デフォルトの名無しさん :04/06/26 00:53
(argc > 1)って常に真だと思うが。

947 名前:945 :04/06/26 00:53
訂正。

pstr = &cout;

pstr = &cin;

948 名前:デフォルトの名無しさん :04/06/26 00:55
>>946
マジで言ってるんだとしたら、相当痛い。もう寝とけ。

949 名前:デフォルトの名無しさん :04/06/26 00:58
>>944
こんなところで。
#include <iostream>
#include <fstream>
int mainfunc(std::istream & stream){
    int i;
    stream >> i;
    std::cout << i;
}
int main(int argc,char *argv[]){
    if(argc>1){
        std::ifstream stream(argv[1]);
        mainfunc(stream);
    }else{
        mainfunc(std::cin);
    }
    return 0;
}


950 名前:945 :04/06/26 00:59
さらに訂正。

pstrを、pistrに修正。
ま、雰囲気で分かるとは思うが。

951 名前:944 :04/06/26 01:12
>>945,949
なるほど・・・理解しました!
ありがとうございました。

952 名前:デフォルトの名無しさん :04/06/26 10:16
クラスのプライベートで、

char *dogs[4] = {"Afghan Hound", "Beagle", "Border Collie", "Dalmation"};

のような文字列の配列を定義するにはどうすればいいんだろ。。。

class name{
private:
char *dogs[4] = {"Afghan Hound", "Beagle", "Border Collie", "Dalmation"};
};
こうするとエラーでるし。

953 名前:デフォルトの名無しさん :04/06/26 10:57
>>952
これでいいか
class name{
private:
 static char *dogs[];
};
char *name::dogs[] = {"Afghan Hound", "Beagle", "Border Collie", "Dalmation"};

954 名前:デフォルトの名無しさん :04/06/26 11:01
>>952
class name{
private:
char *dogs[4];
public:
name()
{
dogs[0] = "Afghan Hound";
dogs[1] = "Beagle";
dogs[2] = "Border Collie";
dogs[3] = "Dalmation";
}
};


955 名前:952 :04/06/26 11:09
>>953
これだと結局はグローバルで初期化することになるよね?
できればコンストラクタ内で初期化したいんだよ。

>>954
それは俺も考えたんだけど、そんな面倒くさいことしないといけないの?
本当に使おうと思ってる配列の数は28個なんだけど。。。。

956 名前:デフォルトの名無しさん :04/06/26 11:16
>>955
class name{
private:
char *dogs[4];
public:
name()
{
ifstream f("dogs.txt");
for(int i = 0; i < 4; i++) {
//ma, ganbareya...
}
}
};


957 名前:デフォルトの名無しさん :04/06/26 11:50
class name {
private:
static const char * * dogs;
public:
name() {
static const char * const tmpDogs[] = {
"AH", "B", "BC", "D",
};
dogs = tmpDogs;
};


958 名前:デフォルトの名無しさん :04/06/26 11:52
>>955
> できればコンストラクタ内で初期化したいんだよ。

ならコンストラクタの中に書けばいいじゃないか。

959 名前:デフォルトの名無しさん :04/06/26 12:25
>>955
>そんな面倒くさいことしないといけないの?

古今稀に見るワガママ君だな、キミ(w
クラス関係ないじゃん。

960 名前:デフォルトの名無しさん :04/06/26 12:50
>>955
コンストラクタ内で初期化したいということは、インスタンス毎に配列を
持っていたいということ?そうだとしたら、そもそも>>953の方法は適さない。

その配列を書き換えるつもりが無いのなら、staticなメンバとして宣言して、
クラス定義の外で一度だけ初期化するの(つまり、>>953の方法)が自然だと思う。

その配列の用途が判らないことには答えようがないよ。

961 名前:デフォルトの名無しさん :04/06/26 13:08
>>960に同意
>>952はインスタンス変数とクラス変数の違いが分かってないのでは?

962 名前:デフォルトの名無しさん :04/06/26 13:15
とりあえず、>>952はマルチ。

963 名前:デフォルトの名無しさん :04/06/26 13:16
>>961
>インスタンス変数とクラス変数

お前の造語か?( ´,_ゝ`)

964 名前:デフォルトの名無しさん :04/06/26 13:20
わかったとしてもわがまま言うだろうから、ここは素直に「できない仕様」と言って放置しよう。

965 名前:デフォルトの名無しさん :04/06/26 13:22
>>963
マジ知らねーの? おまえ・・・

966 名前:デフォルトの名無しさん :04/06/26 13:37
>>963

まずググってから発言するべきだったな

( ´,_ゝ`)スゲーバカハッケンシマスタ!

967 名前:デフォルトの名無しさん :04/06/26 13:57
>>966
まあ、クラス変数作るのにstaticなんてキーワード使うC++系言語が悪いといえば悪いんだけど。
ググってから発言すべきってのには同意。

968 名前:デフォルトの名無しさん :04/06/26 14:01
グローバル変数、メンバ変数と言ってくれなきゃわからん。

969 名前:デフォルトの名無しさん :04/06/26 14:16
そして誰も相手しなくなった・・・

970 名前:デフォルトの名無しさん :04/06/26 14:25
>>963
お前ひょっとして、>>874と同一人物か?

971 名前:デフォルトの名無しさん :04/06/26 14:30
>>968
それもクラス変数、インスタンス変数とは微妙に違う。

972 名前:デフォルトの名無しさん :04/06/26 14:39
C++では、両方とも「メンバ変数」で、static付いてるのが「静的メンバ変数」だ。

973 名前:デフォルトの名無しさん :04/06/26 14:39
稲垣メンバ変数

974 名前:デフォルトの名無しさん :04/06/26 14:40
Javaの用語をC++スレで言われてもなぁ・・・・・

975 名前:デフォルトの名無しさん :04/06/26 14:40
じゃあ変数の呼び方で1000目指します。

976 名前:デフォルトの名無しさん :04/06/26 14:48
それじゃおまえら女性にはちんちんのこと何て呼んで欲しいよ。
俺は恥かしそうに「おちんちん」て言ってほしい。

977 名前:952 :04/06/26 14:52
>>956-960
Naruhodone, Thank you!!

978 名前:デフォルトの名無しさん :04/06/26 15:02
個人的にはインスタンス変数って言葉が何となく気持ち悪い。

979 名前:デフォルトの名無しさん :04/06/26 15:05
俺もおちんちん派

980 名前:デフォルトの名無しさん :04/06/26 15:06
インスタンスおちんちん

981 名前:デフォルトの名無しさん :04/06/26 15:08
じゃあ非staticメンバ変数をおちんちん変数と呼ぼう。

982 名前:デフォルトの名無しさん :04/06/26 15:11
Visualおちんちん++

983 名前:デフォルトの名無しさん :04/06/26 15:12
おちんちん++;
は、つまり勃起することを意味する。

984 名前:デフォルトの名無しさん :04/06/26 15:17
違うだろ++はイテレータだ。隣のマムコに移動するんだよ。

985 名前:デフォルトの名無しさん :04/06/26 15:18
++は必ずプラプラと発音する様に

986 名前:デフォルトの名無しさん :04/06/26 15:19
C++の相談を・・・・



すみません、部屋間違えました

987 名前:デフォルトの名無しさん :04/06/26 15:20
>>986におちんちんをいじってる姿を見られた感じがするんだが

988 名前:デフォルトの名無しさん :04/06/26 15:26
>>984
型が違うから同じコンテナに入れて走査できないだろ?

989 名前:デフォルトの名無しさん :04/06/26 15:29

        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴──────┐
       /   つ. 相談室は夏期休暇中 │
     〜′ /´ └─┬┬──────┘
      ∪ ∪      ││ _ε3



990 名前:デフォルトの名無しさん :04/06/26 15:32
ぬルポに決まってるだろうが!

991 名前:デフォルトの名無しさん :04/06/26 15:33
ちんぽいんたー

992 名前:デフォルトの名無しさん :04/06/26 15:33
あとは次スレ立てて現スレ埋めるだけだから、
ここでおちんちんの呼び方がきっかけで起こった俺のちょっとHな体験談を
書かせてもらおうか。

あれはバイトをしてた頃の話だ。
当時俺はファミレスでバイトをしていた。
ある日バイトの休憩時間にウエイトレスの女の子と休憩室で二人きりになったんだ。
女の子と言っても俺より2歳年上で、バイトの先輩でもあった。

993 名前:デフォルトの名無しさん :04/06/26 15:46
ツヅキマダー?

994 名前:デフォルトの名無しさん :04/06/26 15:47
埋め

995 名前:デフォルトの名無しさん :04/06/26 15:47
で、どういう流れでそうなったのかは忘れたが、
男性器のことを何と呼ぶかという話になった。
彼女はさっきも書いたとおり年上で、
けっこう活発で面倒見も良い頼れる先輩って感じなんだけど、
その話の時はなんだか耳が赤くなってるのが俺にはわかって、ちょっと可愛く見えた。
その時は彼女は「ちんちん」と呼ぶと言っていた。
いつもの先輩としての彼女とは違って、少し恥かしがってる言い方がちょっと新鮮だった。
休憩時間はそんな話で終わったんだけど、
その日のバイトは俺も彼女も閉店時間までだったので、
バイトが終わってからまた休憩室で一緒になった。

996 名前:デフォルトの名無しさん :04/06/26 15:49
産め

997 名前:デフォルトの名無しさん :04/06/26 15:51


998 名前:デフォルトの名無しさん :04/06/26 15:52
埋め

999 名前:デフォルトの名無しさん :04/06/26 15:52
生め

1000 名前:デフォルトの名無しさん :04/06/26 15:52
1000おちんちん ぬるぽ


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.