スレを勃てるまでもないC/C++の質問はここで 5at TECH
スレを勃てるまでもないC/C++の質問はここで 5 - 暇つぶし2ch1: ◆h6A7qfFFu6
08/12/29 11:05:07
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 2
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 3
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 4
スレリンク(tech板)

2:デフォルトの名無しさん
08/12/29 11:24:20
                        /^\_
               ,ィー‐ '⌒´ : : : : ヽ: `ヽ、
          , :≦7: : : : : : : : : : : : : : :ヘ : : : \
         /: : : /: : : : : : : : : : :∧: : : : :', : : : : :\
    rー<⌒\_:_ /: : : : : : :/ : : : :} ',: : : : :}: : :ヽ: : : \
    |: : : : l::..::..:ヽ/: :/ : : : :/ /⌒′│j: : : ト: : : ヘ \: :ヽ、
    |: : : : |:::::::::::' : / : : : :│: : : /   |:ハ : : |ハ: :l : |: : :ヘ
    |: : : : |::::::::::i :│ : : : : { : : : ,イ气 リ ヘ : 心}: }: :|: : : :}
.   /|: : : : }::::::::::| : | : : : : /l: : :/{::ヘ_∧   j/{rイ: | : h: : :′
   ' :|: : : : l::::::::::{: ∧: : : /:ヘ: 〈{ Ⅵ: : :}     Ⅵ: |: / }: /
  {.:::|: : : : |::::::::::Ⅳ::{ : :/ : : :V  ゞzソ     \Ⅳ ,j/
  └┤: : : ヘ:___/⌒l: /: : : : :|    "   rー┐  }:ヘ
    | i: : : : : ヘ ー {^Ⅳ{: : : i: |      { .__{  厶/   >>1 乙!
    | }: : : : : : { : : ヽ、_|: : : l: l           / }
    |八: : : :∧ヽ`゛<ム : : h:{   ____ , く: : :│
    |{ }: : /  ヽ{     }: : :|ヘヽ、 /} : 八 } : : |
.      j/       ∧ : ト、\  ヽ\}  |: /リ
              / ヘ: :l \   } ヽ. j/
           /     ヽ{ ,ィー―ヘ   \
             /ー 、     f } /⌒}   //}/⌒ヽ
          /⌒ヽ、ヽ   /^\  こヘ 〃 に⌒ /ヽ、
            {⌒\ ヽ\{\  \}⌒ /   { ,/ /∧

3:デフォルトの名無しさん
08/12/29 13:21:19
    ,,,..-‐‐‐-..,,,
   /::::::::::::::::::::::::ヽ        _,..-‐‐-..,,,
  l::;;-‐‐-:;;::::::::::::ヽ//-‐,,__ /:::::::::::::::::::::ヽ
  l:l    ヽ:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
  ヽ   /   :::::::::::::::::::::::::::::::::::::;-'^~~^'‐;;:l
   ~ヽ/      ::::::::::::::::::::::::::::::::ヽミ   .ll
    /         :::::::::::::::::::::::::::ヽ  ,.ノ
    /             ::::::::::::::::::::l'^~
  ‐/-,,   (●),    、(●)、 ::::::::::::l フフフ、>>1さんおつかれ
   l  ~^''   ,,ノ(、_, )ヽ、,,       :l
  '''l^^~~~    `-=ニ=- '    -‐‐‐--l-
   ヽ、 ,,,,    `ニニ´     ~^'‐..,,_/
    / (:::::}           ,,,, イ~'''
    l:  ~~           {:::::) ::l
   l:                ~~  l
   l、                 ,l>
   /^‐-,,____,,,,,,,,..................,,,,,,,__,,,.--ヽ
   ~‐‐'~             ^'‐‐~

4:デフォルトの名無しさん
08/12/29 14:42:07
boost::shared_ptr< X > X::Add( boost::shared_ptr< X > x ) {
vec.push_back( x ) ;
return boost::shared_ptr< X >( x ) ;
}

int main(){
boost::shared_ptr< X > x1 ;
boost::shared_ptr< X > x2 ;
boost::shared_ptr< X > x3 ;

x1->Add( x2 ) ; ※
x1->Add( x3 ) ;
}

とやりたいんだけど、これだと※の時点でx1の分が終わった時点で
x1の参照カウントがゼロになってデリートされちゃいます。
Addの引数と戻り値はこのままでうまいことやる方法はありませんか?


5:デフォルトの名無しさん
08/12/29 15:06:27
それだけ見ると
boost::shared_ptr< X > x1 ;
にインスタンス入ってないだけみたいだけど?

6:デフォルトの名無しさん
08/12/29 15:24:29
boost::shared_ptr< X > x1(new X) ;

とやると動くね

7:デフォルトの名無しさん
08/12/29 15:26:31
別に動作に不具合が生じるわけではないが、

boost::shared_ptr< X > x2(new X) ;
boost::shared_ptr< X > x3(new X) ;

もする必要はないのかね。
NULL を Add しても意味ないっしょ。
そして、NULL を Add しようとしても無視するかどうか考える必要もある。

8:デフォルトの名無しさん
08/12/29 15:42:05
boostするメリットって何?

9:デフォルトの名無しさん
08/12/29 15:46:08
>>8
auto_ptrはコンテナに入れられない

10:デフォルトの名無しさん
08/12/29 16:07:29
>>9
う、質問が悪かった
boostを利用するメリットって何?
STLで止まってるんだけど俺

11:デフォルトの名無しさん
08/12/29 16:18:07
>>10
STLを始めとした標準関数・クラスにない機能がboostにはある。

12:4
08/12/29 16:20:42
>>6,7
おっしゃるように全てnewします、すみません

13:デフォルトの名無しさん
08/12/29 16:31:01
>>11
具体的に言うと?

14:13
08/12/29 16:34:16
ググったけど
日本に馴染むには時間がかかるね

15:デフォルトの名無しさん
08/12/29 16:38:09
ワロス

16:デフォルトの名無しさん
08/12/29 16:52:10
日本人はやる気が無いからな。

17:デフォルトの名無しさん
08/12/29 17:17:41
エロス

18:デフォルトの名無しさん
08/12/29 17:19:50
テンプレートメタプログラミング
mpl - テンプレートメタプログラミングのフレームワーク。 コンパイル時アルゴリズム、シーケンス、メタ関数クラス。 Aleksey Gurtovoy 作
static_assert - 静的アサート(コンパイル時アサート)。 John Maddock 作
type_traits - 型の基本的な特徴のためのテンプレート。 John Maddock, Steve Cleary, et al 作
プリプロセッサメタプログラミング
preprocessor - 繰り返しと再帰を含むプリプロセッサメタプログラミングツール群。 Vesa Karvonen 作
並列プログラミング
thread - 移植性のある C++ マルチスレッド。 William Kempf 作
数学と計算
math - 数学の領域での多くの貢献。様々な作者による。
conversion - 数学的、多相的、辞書的キャスト Dave Abrahams and Kevlin Henney 作
interval - 数字の範囲に対する通常の数学関数の拡張。Guillaume Melquiond, Herve Bronnimann, Sylvain Pion 作
integer - 汎整数型を簡単に扱うためのヘッダ。
math/common_factor - 最大公約数と最小公倍数。 Daryle Walker 作
math/octonion - 八元数。 Hubert Holin 作
math/quaterion - 四元数。 Hubert Holin 作
日本人作ってねーw

19:デフォルトの名無しさん
08/12/29 17:32:42
実行はできるのですが、表示がおかしいです。どうにかしてください。

#include <stdio.h>
#define BEGIN {
#define END }
#define MAIN int main()
#define PPP =
#define STRINGNISURUUUU(x) #x
#define STRINGNISURUUU(x) STRINGNISURUUUU(x)
#define STRINGNISURUU(x) STRINGNISURUUU(x)
#define PERSPECTIVE(x) STRINGNISURUU(x)
#define PRINT(x) szFileName(PERSPECTIVE(x))
#define PAUSE getchar();
#define RET return 0;

MAIN
BEGIN
    int (*szFileName)() PPP printf;
    PRINT(パースペクティブ京都マン\n);
    PAUSE
    RET
END


20:デフォルトの名無しさん
08/12/29 17:46:06
どうおかしいの

21:デフォルトの名無しさん
08/12/29 17:58:55
なにこの寒いコード

22:デフォルトの名無しさん
08/12/29 18:16:08
どういう意味ですか

23:デフォルトの名無しさん
08/12/29 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

24:デフォルトの名無しさん
08/12/29 18:25:54
補間機能w

25:デフォルトの名無しさん
08/12/29 18:26:39
>こういうのは原則としてやめろ
これは賛同できる

>エディタの補間機能が働かなくなるし
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww

26:デフォルトの名無しさん
08/12/29 18:28:04
HOKANKINOU

27:デフォルトの名無しさん
08/12/29 18:29:08
その補間機能に痴漢機能はありますか

28:デフォルトの名無しさん
08/12/29 18:31:56
>>19
実行したら文字化けした
マジレスすると、"文字列"と#文字列は等価じゃない。
#の方はコードに日本語が混じることになるから、文字化けするよ。

29:デフォルトの名無しさん
08/12/29 18:39:56
うちは化けなかったがなあ

30:デフォルトの名無しさん
08/12/29 18:40:28
>>28
修正したら上手くいきました。ありがとうございます。

>>23
的外れな意見はいりません。私は「なぜ表示がおかしいのか」を聞いたのです。

31:デフォルトの名無しさん
08/12/29 18:41:18
>>29
コンパイラによるんじゃね?俺はBCCでやったら化けたよ。

32:デフォルトの名無しさん
08/12/29 18:43:34
なるほど。化けなかったのはVC++でした。

33:28
08/12/29 18:44:36
あー、じゃあ>>28に書いたことは処理系依存ってことかな

34:デフォルトの名無しさん
08/12/29 18:46:55
つうかプリプロセス結果を確認すれよ

35:デフォルトの名無しさん
08/12/29 18:47:25
あれをどう修正したのか気になるw

36:デフォルトの名無しさん
08/12/29 18:48:35
>>19 でこれを思い出した。
URLリンク(www.kojima-cci.or.jp)

37:デフォルトの名無しさん
08/12/29 18:56:00
修正しました

#include <stdio.h>

int main(void)
{
    pritnf("パースペクティブ京都マン\n");
    getchar();
    return 0;
}

38:デフォルトの名無しさん
08/12/29 19:01:02
>>37
お前馬鹿か、まだエラーが出るんだけど
WinMainが未解決だよ

39:デフォルトの名無しさん
08/12/29 19:03:20
エ デ ィ タ の 補 間 機 能

40:デフォルトの名無しさん
08/12/29 19:05:27
>>38
Win厨が何寝言ほざいているんだか。

41:デフォルトの名無しさん
08/12/29 19:09:13
まじれすかよ

42:デフォルトの名無しさん
08/12/29 19:10:53
補間機能が働いたんだよ

43:デフォルトの名無しさん
08/12/29 19:12:12
これは補完機能のせいだよ

44:デフォルトの名無しさん
08/12/29 19:16:19
補間機能って便利なのか?

45:デフォルトの名無しさん
08/12/29 19:19:29
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

らしいよ

46:デフォルトの名無しさん
08/12/29 19:23:00
補完機能だな。

47:デフォルトの名無しさん
08/12/29 19:23:34
補間機能ww

48:デフォルトの名無しさん
08/12/29 19:42:55
ゼルゲノム

49:デフォルトの名無しさん
08/12/29 20:41:23
人類補間計画が発動したと聞いて

50:デフォルトの名無しさん
08/12/29 20:44:06
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし


51:デフォルトの名無しさん
08/12/29 21:15:33
よく考えてみたら「補間」ってどういう意味だかわからねえ

52:デフォルトの名無しさん
08/12/29 21:29:20
それは>>23が知っているんじゃないか?


23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

53:デフォルトの名無しさん
08/12/29 21:46:50
そんなに引っ張るネタか?

54:デフォルトの名無しさん
08/12/29 21:47:48
>>51
( ) を書いたら、関数の引数の数に応じて適切な数のコンマが自動的に挿入されるとか。

55:デフォルトの名無しさん
08/12/29 21:50:21
>>51
間に線引くとか

56:デフォルトの名無しさん
08/12/29 21:56:57
>>53=>>23

57:デフォルトの名無しさん
08/12/29 21:57:48
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

58:デフォルトの名無しさん
08/12/29 22:02:16
>>37
#define pritnf printf
が抜けてる

59:デフォルトの名無しさん
08/12/29 22:10:20
修正しました

#include <stdio.h>
#define pritnf printf
int
main
(void)
{pritnf("パースペクティブ京都マン\n");getchar();return 0;}

60:デフォルトの名無しさん
08/12/29 22:11:45
なんか改行が変な感じに。。

#include <stdio.h>
#define pritnf printf

int main(void)
{
    pritnf("パースペクティブ京都マン\n");
    getchar();
    return 0;
}

61:デフォルトの名無しさん
08/12/29 22:15:32
>

62:デフォルトの名無しさん
08/12/29 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど

63:デフォルトの名無しさん
08/12/29 22:40:49
出た、「ジサクジエン」

64:デフォルトの名無しさん
08/12/29 22:41:41
>>62
気になるから貼っているとでも思っているのか

65:デフォルトの名無しさん
08/12/29 22:43:15
必死にレス貼ってる奴は何がしたいの?

66:デフォルトの名無しさん
08/12/29 22:46:48
そんなに貼ってほしいなら・・・

23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

67:デフォルトの名無しさん
08/12/29 22:48:29
変なマクロを避ける主たる理由が補間機能(笑)ねぇ・・・

68:デフォルトの名無しさん
08/12/29 22:49:09
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

69:デフォルトの名無しさん
08/12/29 22:51:33
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

53 :デフォルトの名無しさん:2008/12/29(月) 21:46:50
そんなに引っ張るネタか?

62 :デフォルトの名無しさん:2008/12/29(月) 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど

65 :デフォルトの名無しさん:2008/12/29(月) 22:43:15
必死にレス貼ってる奴は何がしたいの?


こういうことですね、分かります

70:デフォルトの名無しさん
08/12/29 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

71:デフォルトの名無しさん
08/12/29 23:20:58
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

53 :デフォルトの名無しさん:2008/12/29(月) 21:46:50
そんなに引っ張るネタか?

62 :デフォルトの名無しさん:2008/12/29(月) 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど

65 :デフォルトの名無しさん:2008/12/29(月) 22:43:15
必死にレス貼ってる奴は何がしたいの?

70 :デフォルトの名無しさん:2008/12/29(月) 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

72:デフォルトの名無しさん
08/12/29 23:22:37
70 デフォルトの名無しさん[sage] 2008/12/29(月) 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

71 デフォルトの名無しさん[sage] 2008/12/29(月) 23:20:58
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

53 :デフォルトの名無しさん:2008/12/29(月) 21:46:50
そんなに引っ張るネタか?

62 :デフォルトの名無しさん:2008/12/29(月) 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど

65 :デフォルトの名無しさん:2008/12/29(月) 22:43:15
必死にレス貼ってる奴は何がしたいの?

70 :デフォルトの名無しさん:2008/12/29(月) 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

73:デフォルトの名無しさん
08/12/29 23:23:09
もういい加減にしてくれ・・・・・・・

74:デフォルトの名無しさん
08/12/29 23:29:06
72 :デフォルトの名無しさん:2008/12/29(月) 23:22:37
70 デフォルトの名無しさん[sage] 2008/12/29(月) 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

71 デフォルトの名無しさん[sage] 2008/12/29(月) 23:20:58
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

53 :デフォルトの名無しさん:2008/12/29(月) 21:46:50
そんなに引っ張るネタか?

62 :デフォルトの名無しさん:2008/12/29(月) 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど

65 :デフォルトの名無しさん:2008/12/29(月) 22:43:15
必死にレス貼ってる奴は何がしたいの?

70 :デフォルトの名無しさん:2008/12/29(月) 23:13:33
>>69
で、君は何が言いたいの?
何を知ってもらいたい?
さっぱりわからんから説明してくれ

75:デフォルトの名無しさん
08/12/29 23:31:00
61 :デフォルトの名無しさん:2008/12/29(月) 22:15:32
>
61 :デフォルトの名無しさん:2008/12/29(月) 22:15:32
>
61 :デフォルトの名無しさん:2008/12/29(月) 22:15:32
>
61 :デフォルトの名無しさん:2008/12/29(月) 22:15:32
>
61 :デフォルトの名無しさん:2008/12/29(月) 22:15:32
>


76:デフォルトの名無しさん
08/12/29 23:35:51
                        /^\_
               ,ィー‐ '⌒´ : : : : ヽ: `ヽ、
          , :≦7: : : : : : : : : : : : : : :ヘ : : : \
         /: : : /: : : : : : : : : : :∧: : : : :', : : : : :\
    rー<⌒\_:_ /: : : : : : :/ : : : :} ',: : : : :}: : :ヽ: : : \
    |: : : : l::..::..:ヽ/: :/ : : : :/ /⌒′│j: : : ト: : : ヘ \: :ヽ、
    |: : : : |:::::::::::' : / : : : :│: : : /   |:ハ : : |ハ: :l : |: : :ヘ
    |: : : : |::::::::::i :│ : : : : { : : : ,イ气 リ ヘ : 心}: }: :|: : : :}
.   /|: : : : }::::::::::| : | : : : : /l: : :/{::ヘ_∧   j/{rイ: | : h: : :′
   ' :|: : : : l::::::::::{: ∧: : : /:ヘ: 〈{ Ⅵ: : :}     Ⅵ: |: / }: /
  {.:::|: : : : |::::::::::Ⅳ::{ : :/ : : :V  ゞzソ     \Ⅳ ,j/
  └┤: : : ヘ:___/⌒l: /: : : : :|    "   rー┐  }:ヘ
    | i: : : : : ヘ ー {^Ⅳ{: : : i: |      { .__{  厶/   >>1 乙!
    | }: : : : : : { : : ヽ、_|: : : l: l           / }
    |八: : : :∧ヽ`゛<ム : : h:{   ____ , く: : :│
    |{ }: : /  ヽ{     }: : :|ヘヽ、 /} : 八 } : : |
.      j/       ∧ : ト、\  ヽ\}  |: /リ
              / ヘ: :l \   } ヽ. j/
    ,,,..-‐‐‐-..,,,
   /::::::::::::::::::::::::ヽ        _,..-‐‐-..,,,
  l::;;-‐‐-:;;::::::::::::ヽ//-‐,,__ /:::::::::::::::::::::ヽ
  l:l    ヽ:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
  ヽ   /   :::::::::::::::::::::::::::::::::::::;-'^~~^'‐;;:l
   ~ヽ/      ::::::::::::::::::::::::::::::::ヽミ   .ll
    /         :::::::::::::::::::::::::::ヽ  ,.ノ
    /             ::::::::::::::::::::l'^~
  ‐/-,,   (●),    、(●)、 ::::::::::::l

77:デフォルトの名無しさん
08/12/29 23:38:37
    ,,,..-‐‐‐-..,,,
   /::::::::::::::::::::::::ヽ        _,..-‐‐-..,,,
  l::;;-‐‐-:;;::::::::::::ヽ//-‐,,__ /:::::::::::::::::::::ヽ
  l:l    ヽ:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
  ヽ   /   :::::::::::::::::::::::::::::::::::::;-'^~~^'‐;;:l
   ~ヽ/      ::::::::::::::::::::::::::::::::ヽミ   .ll
    /         :::::::::::::::::::::::::::ヽ  ,.ノ
    /             ::::::::::::::::::::l'^~
  ‐/-,,   (●),    、(●)、 ::::::::::::l
そう…。そのまま飲み込んで。僕のエクスカリバー…

78:デフォルトの名無しさん
08/12/29 23:40:26
なんでだよw

79:デフォルトの名無しさん
08/12/29 23:47:31
printf(">>77ってなんか元ネタがあるの?\n");

80:デフォルトの名無しさん
08/12/29 23:50:04
scanf("ハム太郎だと思われ", &n);

81:デフォルトの名無しさん
08/12/30 00:01:45
URLリンク(up2.viploader.net)

82:デフォルトの名無しさん
08/12/30 00:11:19
while (1) cout << _T("これがBLというやつか") << endl;

83:デフォルトの名無しさん
08/12/30 00:18:34
ハム太郎ってBLものだっけ

84:デフォルトの名無しさん
08/12/30 01:14:01
#include <stdio.h>

int sum(int,int);

int main(void);
{
int ham;

ham = sum(50,20);

printf("%d\n",ham);

printf("%d\n",ham + 20);

return 0;
}

int sum(int mix,int max)
{
int num;

num = (mix + max) / 2 * 3 -100;

return num;
}
6) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)

なにがちがうんじゃあああ

85:デフォルトの名無しさん
08/12/30 01:17:23
int main(void); ←!!!!!!!

86:デフォルトの名無しさん
08/12/30 01:18:02
そ・・そうか!!!
サンクス!

87:デフォルトの名無しさん
08/12/30 01:56:20
STLにマルチスレッド
例外発生しまくりなんだけど
なにかいいソースコード入力方法ない?
デバック追跡機能追加ともいいのかな
やっぱクリティカルセクション使わなければいけないのかな?
面倒くさいのよね

88:デフォルトの名無しさん
08/12/30 02:02:16
STLはスレッドアンセーフだからマルチスレッドでは使っちゃダメ
別のスレッドセーフに設計されたライブラリを使いなさい

89:デフォルトの名無しさん
08/12/30 02:12:25
>>88
クリティカルセクションで保護しても無理ですかね?

90:デフォルトの名無しさん
08/12/30 02:14:50
>>89
速度がガタ落ちになってもいいならそれでどうぞ

91:デフォルトの名無しさん
08/12/30 02:36:06
>>36
俺はそこで引き合いに出されている診断室を思い出したw

92:デフォルトの名無しさん
08/12/30 12:09:13
スマートポインターを7種類も8種類も作って、C++のコミュニティって馬鹿なの?

これを用途によって間違わずに使い分けるより、new-deleteの対応付けをきっちりやる方が余程簡単だっつーのw
ホント馬鹿だな。

93:デフォルトの名無しさん
08/12/30 12:09:22
プログラムの進捗状況をグラフみたいので表示したいんだが、
グラフィックスライブラリって何がいい?
今から勉強するんだが

94:デフォルトの名無しさん
08/12/30 12:11:03
プロジェクト管理ツール使ってみては

95:デフォルトの名無しさん
08/12/30 12:14:42
C++は標準のGCを備えない時代遅れのダメ言語

スマートポインタ(笑)を乱造する知的障害者が設計している

96:デフォルトの名無しさん
08/12/30 12:28:09
>>95 またお前か。スマートポインタの種類の数にやたら固執するね。

97:デフォルトの名無しさん
08/12/30 13:12:08
3つ以上は使いこなせなくて挫折したんだろ。

98:デフォルトの名無しさん
08/12/30 13:17:01
GCは良いことばかりではないよ。処理に時間食うし。 
あと何度も使う配列はグローバルにすれば、再生成に時間食わない。

99:デフォルトの名無しさん
08/12/30 13:18:20
プログラム書く前に吟味してから作り出せばGC(に任せる処理)は無くせるだろ。

100:デフォルトの名無しさん
08/12/30 13:49:40
>>99
それならスマートポインタ(笑)もいらないだろ馬鹿

101:デフォルトの名無しさん
08/12/30 13:50:30
>>100
RAIIを知らない馬鹿が出てきたよ

102:デフォルトの名無しさん
08/12/30 14:03:27
マジレスすると、
単純にnew delete の解放忘れで発生するバグと
ごちゃごちゃしたスマートポインタの使い間違いによるバグと
どっちが発生しやすいと思う?

後者の方が断然多いと思うのだが。

103:デフォルトの名無しさん
08/12/30 14:12:15
>>77みたいなのがスマートポインタ?

104:デフォルトの名無しさん
08/12/30 14:16:44
ゴチャゴチャしたスマートポインタって、たとえばどんな?

105:デフォルトの名無しさん
08/12/30 14:25:06
auto_ptr
weak_ptr
intrusive_ptr
scoped_ptr


106:デフォルトの名無しさん
08/12/30 14:26:17
>>105
それをゴチャゴチャしていると感じるなら、単にそれはお前の勉強不足。
自分の勉強不足を棚に上げてよく言うよ

107:デフォルトの名無しさん
08/12/30 14:29:46
スマートポインタですら管理できないならC/C++はやめた方が・・・

108:デフォルトの名無しさん
08/12/30 14:33:19
>>106
で、new-deleteよりスマートポインタの方が問題が発生しにくいことについて、
お前の「勉強」の成果は述べないの?

109:デフォルトの名無しさん
08/12/30 14:35:21
>>108
人の事を気にする前に自分の能の無さを嘆けよw

110:デフォルトの名無しさん
08/12/30 14:39:43
new-deleteの方が、スマートポインタより問題が少ないという仮説を述べた。
それに対して>>106は勉強不足とか頓珍漢な事を言っている。

勉強不足と言うなら、どう勉強不足なのか具体的に説明しろ。
それが出来ないなら>>106は単なる馬鹿だ。話にならん。

111:デフォルトの名無しさん
08/12/30 14:43:54
>>110
うぜえんだよゴチャゴチャと
スマートポインタについて説明しだすと長くなる
勉強にも長い時間がかかるしな

お前の屁理屈に付き合ってる時間はない

112:デフォルトの名無しさん
08/12/30 14:46:22
仮説って・・・
根拠もなく「俺は思うのだが」を仮説と呼ぶのか?

113:デフォルトの名無しさん
08/12/30 14:51:39
シチューの方が、カレーよりうまいという仮説を述べた。
それに対して>>106は食わず嫌いだとか頓珍漢な事を言っている。

食わず嫌いと言うのなら、どう食わず嫌いなのか具体的に説明しろ。
それが出来ないなら>>106は単なる馬鹿だ。話にならん。

114:デフォルトの名無しさん
08/12/30 15:10:05
GCもnewも使わず、STL一本でいけば良いと思うんだが。
そしたら自動変数と同じ使い方でしょ。

115:デフォルトの名無しさん
08/12/30 15:11:36
速度や安定性重視ならはじめに確保したメモリを使い回すのが良いし。
頻繁に動的確保するのは、速度と安定面でよくない。

116:デフォルトの名無しさん
08/12/30 15:15:46
STLを含めて動的確保は実測してみると速度が遅い。
C++の自動変数だと、あらかじめ確保した領域を、使い回すから、確保と解放が無くて良い。

117:デフォルトの名無しさん
08/12/30 15:39:07
>>116
自動変数はスタック領域だから、あらかじめ確保した領域を使いまわすってのは
ちょっと違うだろ

まぁ 「厳密にいえば間違ってはいない」 ってやつだろうが

118:デフォルトの名無しさん
08/12/30 15:40:43
ageてる釣り野郎に反応しちゃダメだってば

119:デフォルトの名無しさん
08/12/30 15:53:49
スタック領域 = あらかじめ確保した領域

必要なサイズがコンパイル時に決定されて、それを確保したらC++が管理して使い回す。

120:デフォルトの名無しさん
08/12/30 16:21:57
スマートポインタに迷ったらshared_ptr/array使っておけばいいじゃない。
循環参照?何それおいしいの?

まあでもスマートポインタの乱立を許したのはC++の失策だったと思う。
auto_ptrの代わりにshared_ptrをC++98の時点で入れておけば少しは良くなったと思うんだけど。

121:デフォルトの名無しさん
08/12/30 16:25:14
>>108
こいつ頭おかしいな。
これで仕事とか勤まるのか?

122:デフォルトの名無しさん
08/12/30 16:27:29
>>121
こいつ頭おかしいな。
これで仕事とか勤まるのか?

123:デフォルトの名無しさん
08/12/30 16:29:37
自作自演くせえなあ

124:4
08/12/30 16:30:05
4ですが、あまりのスルーされっぷりに泣きそうです

125:デフォルトの名無しさん
08/12/30 16:32:59
>>124
>>5-7>>12

126:デフォルトの名無しさん
08/12/30 16:43:10
>>123
だってマジで頭おかしいもん。
new-deleteのほうが問題起きないって、証明どころか傍証をあげるとか
説明もいっさいなしで、>>108の頭の中では、いつのまにか証明済みっていうか
「事実」になちゃってるわけでしょ?

>>110で、多少おかしいと思ったのか「仮説」って言い直してるけど、
自分から言い出したのに、相変わらず相手に反論しろって言ってるし。

127:デフォルトの名無しさん
08/12/30 16:50:11
new-deleteでは、newしたら必ずdeleteすることだけを覚えておけば問題が起きない。

スマートポインタは乱立するそれぞれのポインタの特性を覚えておかなければいけない。
例えば、shared_ptrを使うところをweak_ptr を使ったら死亡。

故に、new-deleteの方が問題起きない。

証明終

128:デフォルトの名無しさん
08/12/30 16:51:39
>>127
俺がいまいじってるソースは、異常ケースでreturnして、delete忘れてるってのが
何箇所もあるんだけど。

129:デフォルトの名無しさん
08/12/30 16:52:36
>>128
それはお前があほなだけ

130:デフォルトの名無しさん
08/12/30 16:54:21
すげぇ真性のバカだな
証明終
とか書いちゃってもうみてらんない

131:デフォルトの名無しさん
08/12/30 16:56:18
注意してコーディングしてればなんとかなるってもんじゃないから、
あたらしい言語はGC採用してるんだろ。

132:デフォルトの名無しさん
08/12/30 16:59:13
つまり、C++は標準のGCを備えない時代遅れのダメ言語ってことだな。

133:デフォルトの名無しさん
08/12/30 17:01:52
もうそういう事でいいようぜぇ

134:デフォルトの名無しさん
08/12/30 17:02:26
悔しいが、反論できない、、

135:デフォルトの名無しさん
08/12/30 17:03:54
C++/CLIがあるじゃないか

136:デフォルトの名無しさん
08/12/30 17:03:57
Dみたいに、GCあって、スコープが外れたらデストラクタ(相当)が呼ばれるって
仕組みがあればいいけど、ま、C++ならスマートポインタでいいかな。

137:デフォルトの名無しさん
08/12/30 17:06:10
auto と同じ使い方だけで良いんだったらSTL使えばいいじゃん

138:デフォルトの名無しさん
08/12/30 17:07:05
GCはメモリに対してリークの心配がなくなるというだけであって、
それ以外のリソースには無力だぞ

139:デフォルトの名無しさん
08/12/30 17:09:22
>>130
反論できないからってごまかしてんじゃねーよカス

140:デフォルトの名無しさん
08/12/30 17:11:30
GCが標準装備だったら、高性能なハードでない場合に困るだろ。
組み込みとか

組み込みシステム - Wikipedia

具体例
家庭用電気機械器具
炊飯器、洗濯機、エアコンディショナー
デジタルカメラ
テレビ、ビデオデッキなどAV機器
ゲーム機、携帯電話などのデジタル家電
エレベーター
信号機
複写機
自動販売機
パチンコ機、パチスロ機、スロットマシン

141:デフォルトの名無しさん
08/12/30 17:13:54
世の中、参照カウントでGC付きって言っている言語処理系だってあるんだから、
C++でコーディングするときも常にshared_ptrを使えばいいんだよ。

>>127の「newしたら必ずdeleteすること」を次のように言い換える。
new→newしてshared_ptrの構築
delete→reset()
128の問題は無くなるし、循環参照もnew-deleteで(手動でやれば)問題にならないならば、
shared_ptrでも手動でやれば問題ないはず。

性能とか組込とか知らんがなという前提で。

142:デフォルトの名無しさん
08/12/30 17:18:21
ガベージコレクションはプログラムの本来の動作とは別に時間のかかる処理であり、実装によっては一旦処理が開始されると他の処理を止め、CPUを長時間(数百ミリ秒から数十秒)占有することもある。
さらに、ガベージコレクションの動作タイミングの予測やCPUの占有時間の事前予測などが困難なことから、デッドラインが決められてるリアルタイムシステムには向いていない。


ガベージコレクション - Wikipedia
URLリンク(ja.wikipedia.org)

143:デフォルトの名無しさん
08/12/30 17:19:32
あんまり関数を分けると重くなるから良くないって聞いたことあるけど、それって
昔のCPUがしょぼしょぼの時の話しで今ではそれほど気にしなくていい?
たまに数行づつで関数に分けてる人いるけどそのぐらいまでやっちゃっていいの?

144:デフォルトの名無しさん
08/12/30 17:22:38
>>143
程度によるが、最新のコンパイラを使っていれば差はたいしてでない。
分割したりオブジェクト指向にすることは、管理が楽になるという利点がある。

145:デフォルトの名無しさん
08/12/30 17:25:21
でも、再帰呼び出しは確実に遅くなるよ。ループに書き換えられるという再帰定理というのがあるので
なるべく再帰呼び出しは使わない方が良い。

146:デフォルトの名無しさん
08/12/30 17:26:55
「早すぎる最適化は諸悪の根源」

実行性能が許容できないくらい悪くて、その原因が本当に
関数呼び出しのコストだと分かった時点で初めて
そういう小手先の手段に出るものだ

そんな関数の分け方くらいではまず間違いなく性能に何の影響もないと思うが

147:デフォルトの名無しさん
08/12/30 17:27:36
>>143
数行とか一行の関数を書くとか普通だから。

148:デフォルトの名無しさん
08/12/30 17:29:27
>>139
おまえは常に「覚えておいて」プログラム組んでろカス

149:デフォルトの名無しさん
08/12/30 17:30:33
>>145
意味が分からない。
「末尾再帰だったら、再帰でもいい」とかだったら意味が通じるけど。
(再帰だって、速度に問題なかったらふつーに使うわな。あたりまえだけど)

150:デフォルトの名無しさん
08/12/30 17:31:25
再帰はループに書き換えられるよ!って言ってるんだろう

151:デフォルトの名無しさん
08/12/30 17:35:07
関数呼び出しに、時間食ってるのでは? と予測してマクロ関数に書き換えてみたり
するのだが、ほとんど差が出ないという経験から関数として\を使うマクロは使わないことにしている。

152:デフォルトの名無しさん
08/12/30 17:39:09
ありがとう。とりあえずガンガン関数に分けちゃって問題ないんだね
これからはガンガン分けていくことにします

153:デフォルトの名無しさん
08/12/30 17:44:46
MS-BASICはガベージコレクション内蔵らしいね

154:デフォルトの名無しさん
08/12/30 17:47:08
>>143
数行の関数を作ってもOKだし推奨

関数の呼び出しのコストが問題になるのはループ内とかとにかく繰り返し多数呼び出される場合だね。そういう場合はinlineを使う。
仮想関数は少し重めだからループ内では要注意

最近のコンパイラはinlineの指定をしなくても勝手に判断してインライン展開をしてくれるから気にしないでいい。

155:デフォルトの名無しさん
08/12/30 17:52:21
>>153
ああ文字列の操作領域だろ
確か3Kバイトが標準で一杯になったらGCを走らせる
8ビットならではの世界だった

N88BASIC(86)はもう少し広いだろうが

156:デフォルトの名無しさん
08/12/30 18:01:55
突然マイコンが止まるあれだね



157:デフォルトの名無しさん
08/12/30 18:11:57
そうそう
BASICで文字列を頻繁に操作していると時々止まった
その謎が解けるまで(つまりはGCだという事を知るまで)時間がかかった

158:デフォルトの名無しさん
08/12/30 18:29:05
GC GCってゲームキューブじゃないのなw
何の騒ぎかわからんかったよ

159:デフォルトの名無しさん
08/12/30 18:31:28
>158
ゲーム関連板ならゲームキューブのことだろうけど
ここはプログラム板だぞw ガベージコレクションに決まっておろう

160:デフォルトの名無しさん
08/12/30 19:07:49
どの言語を覚えればいいの・・?
C言語ってだめなの??

161:デフォルトの名無しさん
08/12/30 19:09:13
Cでいいよ。C++でもいいけど。

162:デフォルトの名無しさん
08/12/30 19:25:30
C++ってCの付けたし見たいなものだよね・・?

163:デフォルトの名無しさん
08/12/30 19:26:54
CがC++の一部を抜き出したものだと思え

164:デフォルトの名無しさん
08/12/30 19:28:13
わかりました

165:デフォルトの名無しさん
08/12/30 19:29:05
>>162
いまや全くの別物のくせに、そういう偏見が間違っているとも言えない微妙な関係。

166:デフォルトの名無しさん
08/12/30 19:37:27
まあ、質問スレを共通にされるくらいだから、同じようなものだ

167:デフォルトの名無しさん
08/12/30 20:50:04
結論としては、shared_ptr以外は不要ってことで、おk?

168:デフォルトの名無しさん
08/12/30 20:52:27
>>167
他のスマートポインタも使い方憶えればいいんじゃない?

169:デフォルトの名無しさん
08/12/30 20:55:54
struct shiken_in test;

memset(&test,0,sizeof(test));

このような文があるのですが、
&testがさす意味はなんなのでしょうか?
&がつく意味がよくわからないのです

170:デフォルトの名無しさん
08/12/30 20:58:52
アドレスです

171:デフォルトの名無しさん
08/12/30 21:02:39
>>168
覚えたとしても、それらを使い間違わないようにビクビクしながら使うよりは、
単純にshared_ptr使った方が、バグが少ない堅いコーディングができると思うけど。

172:デフォルトの名無しさん
08/12/30 21:07:19
>>170
ポインタの宣言がなくてもアドレスは使用可なのでしょうか
ていうか、子の場合アドレスで指定する意味はなんでしょうか?

173:デフォルトの名無しさん
08/12/30 21:10:39
コピーを避けるためです。

174:デフォルトの名無しさん
08/12/30 21:30:52
ポインタならコピーをされる?

175:デフォルトの名無しさん
08/12/30 21:38:00
ポインタなら、ポインタだけ渡せばいいからデータ自体はコピーされない


176:デフォルトの名無しさん
08/12/30 21:43:01
>>167
自ら使うのはshared_ptrだけでもいい。次期標準にも入る。

入るおかげで、C++0xでは、標準に入っていないのは無視してOKと言えるようになるんだが。
例えば、>>105で挙げられているintrusive_ptrは知っていても大多数が使ったことないだろう(俺もだ)。
scoped_ptrはauto_ptrとまとめてunique_ptrになる。
#びくびくせず自信を持って使えるならweak_ptrも使ってほしい。


177:169
08/12/30 21:51:30
ますますよくわからなくなってきた

まず、構造体を宣言して
sizeof(test)でなにをかえすんだろうか
testの中身は宣言だけしてるだけで、実際何もはいってない?いや、0ならはいってるのかな
で、memsetでそのtestのアドレスの先頭からだけど、testのアドレスの中身じゃなくて、アドレスの
先頭から0で埋めるとかおかしくないのかな。アドレスであってアドレスが差す値じゃないから。

178:デフォルトの名無しさん
08/12/30 21:57:22
memsetは、アドレスが指す領域を指定した値で埋める関数だよ


179:デフォルトの名無しさん
08/12/30 21:57:33
sizeof testはsizeof (struct shiken_in)と同じと決まっている。
memsetにはアドレスを渡すけど、
memsetが0で埋めるのは、アドレスが差す値。

180:デフォルトの名無しさん
08/12/30 21:59:08
変数じゃなくて、変数の「場所」を渡してる
memsetはその「場所」をみてそこをsizeof(test)バイト分0で埋めてる

181:デフォルトの名無しさん
08/12/30 22:15:59
>>171
まあ、でも、そこまで難しいものでもないし。

182:169
08/12/30 22:20:36
実際、sizeof(test)は何バイトになるのでしょうか?



183:デフォルトの名無しさん
08/12/30 22:22:30
わかりません

184:デフォルトの名無しさん
08/12/30 22:26:41
>>182
testの型による。
testはどう宣言してるの?

185:169
08/12/30 22:40:44
struct shiken_in test;

>>184
はい、このように宣言しております

186:デフォルトの名無しさん
08/12/30 22:47:17
やべぇちょっと笑ってしまった

187:デフォルトの名無しさん
08/12/30 22:58:22
structなんだからstruct shiken_in がなんなのか探せ

188:デフォルトの名無しさん
08/12/30 23:00:07
そもそも shiken_in が分かったところで
アラインメントの設定が分からんとサイズは分からんだろ。

189:デフォルトの名無しさん
08/12/30 23:02:16
>182
shiken_in のサイズになる。
具体的には環境による。

190:169
08/12/30 23:05:34
sockaddr_in
すみません、正確にはこういう構造体です
中身はかいてません。sizeofしたら何バイトになるのかな?

191:デフォルトの名無しさん
08/12/30 23:06:45
sizeof すればいいじゃん。

192:デフォルトの名無しさん
08/12/30 23:13:27
だから構造体のメンバの内容とアライメントの2つの情報がないと誰にも答えられないんだってば。
そして理屈抜きでサイズだけ知りたいなら5行くらいのソースを書いてsizeofを見るのが一番早い。

193:デフォルトの名無しさん
08/12/30 23:27:35
typedef struct DADADADADADADA
{
    char p[1024];
} CDDB;

CDDB cddb;

int main(void)
{
    return cddb;
}


194:デフォルトの名無しさん
08/12/30 23:28:33
printf("sizeof(struct sokaddr_in)=%d\n", sizeof(struct sockaddr_in));

195:デフォルトの名無しさん
08/12/30 23:36:16
printf("%d\n", sizeof(printf));

196:デフォルトの名無しさん
08/12/31 12:48:14
>>140
言語が標準GCを備えることと、GCが言語の使用と不可分でシステムに組み込まれることとは別だろ。

「高性能なハード」とやらの場合には、GCを組み込んで
「高性能なハード」でない場合には、GCを組み込まず手動のメモリ管理を使用してシステムを構築すればいい。

C++はマルチパラダイム言語とやらを標榜するくらいだから、それくらい普通にするだろ。

それなのに何故標準GCを提供しないのか意味不明。
きっと言語設計者およびその取り巻きはバカなんだろうな。

197:デフォルトの名無しさん
08/12/31 12:55:47
ということにしたいのですね

198:デフォルトの名無しさん
08/12/31 12:58:24
したいのではなく、事実なのです。

199:デフォルトの名無しさん
08/12/31 12:58:42
>>196
高性能なハードでない場合には手動のメモリ管理を使用してってwwwwwwww
その辺が自動化できればGCを導入するのに必要な苦労がいないし、GCもいらないじゃんwwww
バカかこいつは

200:デフォルトの名無しさん
08/12/31 12:59:16
ということにしたいのですね

201:デフォルトの名無しさん
08/12/31 12:59:29
>>199
お前は、先ず日本語を勉強しろ。

202:デフォルトの名無しさん
08/12/31 13:00:23
>>196
GCの有無で言語仕様が大きく変わるんだよ。
GCが必要な人はGCを持つ言語を使えばいい。GCが不要な人はGCがない言語を使えばいい。


203:デフォルトの名無しさん
08/12/31 13:04:28
>>202
変わるのではなく、パラダイムが追加されればいいんだろ。
GCが必要な人はC++をGCを持つ言語として使えばいい。GCが不要な人はC++をGCがない言語として使えばいい。

C++はそういうことが得意な言語じゃないのか?

204:デフォルトの名無しさん
08/12/31 13:05:56
C++はgcがない言語

205:デフォルトの名無しさん
08/12/31 14:17:07
>>203
パラダイムという言葉を使わずに、C++にGCを実装するのに必要なことは何か言ってごらん。


206:デフォルトの名無しさん
08/12/31 14:18:57
ゲームキューブで議論するスレだったのか

207:デフォルトの名無しさん
08/12/31 14:21:44
C++/CLI使えばいいじゃん

208:デフォルトの名無しさん
08/12/31 14:27:23
>>203
一方C++はスマートポインタを実装した。

209:デフォルトの名無しさん
08/12/31 14:36:33
一方STL野郎は独自のアルゴリズムを実装した

210:デフォルトの名無しさん
08/12/31 15:00:21
>>205
先ず、お前の勘違いを訂正する。
実装するのはC++にではなく、C++の処理系に対して。

C++の処理系にGCを実装するのに必要なことは
GCの設計/コーディング/デバグ

それ以前に、C++の言語仕様にGCの仕様を追加する必要がある。

211:デフォルトの名無しさん
08/12/31 15:07:23
お手軽に付け外しができる機能とでも思ってるのか

212:デフォルトの名無しさん
08/12/31 15:09:38
日本語でおk

213:デフォルトの名無しさん
08/12/31 15:28:19
お前らがグダグダ何と言おうが、既に将来の規格改定でGC導入は間違いない路線。
残念ながらC++0xには間に合わなさそうだけど。

現状こんな感じ。
URLリンク(d.hatena.ne.jp)

214:205
08/12/31 15:36:48
>>210
よし、訂正された。
つづきをどーぞ


215:デフォルトの名無しさん
08/12/31 15:39:09
>>214
何の続き?

216:デフォルトの名無しさん
08/12/31 16:52:51
C++0x

217:デフォルトの名無しさん
08/12/31 17:19:59
素晴らしいオセロゲームを作りたいんですが・・・

作れるようになるまでに、どれくらいかかるんでしょうか?

218:デフォルトの名無しさん
08/12/31 17:24:45
自分が出来を素晴らしいと思えるようになるまで。

219:デフォルトの名無しさん
08/12/31 17:32:14
3ヶ月くらい

220:デフォルトの名無しさん
08/12/31 17:37:55
>>217
>>23の言う補間機能を使うといいよ

221:デフォルトの名無しさん
08/12/31 17:48:14
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

222:デフォルトの名無しさん
08/12/31 17:49:40
>>217
素晴らしいの意味によるし、経験にも依るでしょ。
強いという意味なら自分で考えるならそれなりに解析が必要。
見栄えという意味ならお絵描き/画像作りが必要。

223:デフォルトの名無しさん
08/12/31 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

224:デフォルトの名無しさん
08/12/31 18:18:45
>>223
わざわざ答えてもらってるのに失礼じゃないですか
そういうレスはやめてください


225:デフォルトの名無しさん
08/12/31 18:25:28
>>224
いや、答えてないから。

226:デフォルトの名無しさん
08/12/31 18:30:49
>>225
グダグダうるせーよwwwww

227:デフォルトの名無しさん
08/12/31 18:37:07
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

228:デフォルトの名無しさん
08/12/31 18:38:11
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

229:デフォルトの名無しさん
08/12/31 18:55:27
>>222
C言語を学ぶだけではなく、絵もうまくなる必要があるってことですね!

230:デフォルトの名無しさん
08/12/31 19:03:15
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

231:デフォルトの名無しさん
08/12/31 19:05:11
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

232:デフォルトの名無しさん
08/12/31 19:14:34
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

233:デフォルトの名無しさん
08/12/31 19:25:07
>>223
期間 : 5か月くらい
前提 : 俺が作るとして

234:デフォルトの名無しさん
08/12/31 19:44:37
>>219 >>233
thx

235:デフォルトの名無しさん
08/12/31 19:44:41
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

236:デフォルトの名無しさん
08/12/31 20:27:30
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

237:デフォルトの名無しさん
08/12/31 23:07:08
なんか、新しいスレになってから荒れてるね

238:デフォルトの名無しさん
08/12/31 23:16:17
223 :デフォルトの名無しさん:2008/12/31(水) 18:03:39
どれくらいって聞いてるのに、グダグダうるせーっつーの。
お前らは期間を示せばいいんだよ。前提があるなら前提も示せっつーの。

239:デフォルトの名無しさん
09/01/01 00:17:12
だめだ・・・僕にはプログラミングなんて・・無理かもしれない・・

240:デフォルトの名無しさん
09/01/01 00:31:42
なぜ?具体的に。

241:デフォルトの名無しさん
09/01/01 00:39:35
・・いま苦Cで文字列を扱う方法してるんですけど・・
そこで少し分厚い壁に当たってしまいました・・
こんなしょっぱなから壁にぶつかるようじゃ、俺にC言語習得なんて無理なんじゃないか・・?
って考えてます・・

242:デフォルトの名無しさん
09/01/01 00:45:46
全然具体的じゃないきがするなぁ
プログラムでつまづくのは別にいいけど「良い質問/相談」を持ちかけるのはやっぱり必要だとオモ

あ、あけましておめでとう

243:デフォルトの名無しさん
09/01/01 00:53:22
>>241
web で勉強してるの?個人的には本一冊買った方が良いと思うなぁ。
あと、論理的思考能力とやる気さえあればプログラミングはできるよ。

244:デフォルトの名無しさん
09/01/01 01:00:58
あけましておめでとうございます

>>243
よし!本を買うことにします

245:デフォルトの名無しさん
09/01/01 02:00:08
>>241
俺もWEBで勉強した

で、した感想

本買ったほうが100倍速いぞw

246:デフォルトの名無しさん
09/01/01 02:31:11
やはり、特に用途がないものを学ぶのは辛いもの。
勉強でやってるなら、とりあえず作ってみて
必要になったら、Webなり2chで聞くなりした方が絶対覚えが早いよ。

247:デフォルトの名無しさん
09/01/01 03:29:27
gets()は絶対に使ってはならない

↑実際どうなの

248:デフォルトの名無しさん
09/01/01 03:50:21
実際そのとおり。fgetsで何も困らない。

249:デフォルトの名無しさん
09/01/01 04:25:07
 使うべきではない、が正しいと思う。
バッファオーバーフローで、PCがハック(今ではクラックの方が正しいか)されたいのであれば、使えばいい。
1988年にfingerdを襲った悲劇の教訓からそう語り継がれているんだよ。

250:デフォルトの名無しさん
09/01/01 04:35:03
やっぱそうか
1つくらいいいところあるかなと思ったけど、いいとこないな

251:デフォルトの名無しさん
09/01/01 13:15:35
list< orekurasu > data;

data

252:デフォルトの名無しさん
09/01/01 13:19:38
list< orekurasu > data; として dataにデータを入れて、リストで3連続するもののうち、
前後の二つと中央のデータにある違いがある場合、真ん中のデータを削除したいのですが、
remove_ifと叙述関数(プレディケート)を使って作れますか?
叙述関数では各要素毎にしか比較できませんか?

253:デフォルトの名無しさん
09/01/01 13:20:58
まとめるとremove_ifで、一つ前と一つ後ろのデータを参照して削除可能かということです。

254:デフォルトの名無しさん
09/01/01 13:23:26
無理なら、別に良いです。 remove_ifなしで書けば済むので。

255:デフォルトの名無しさん
09/01/01 13:53:38
無理じゃね?
そもそも、範囲が違う (remove_ifは要素全部、3連続比較は(本質的には)要素数-2個の範囲)

256:デフォルトの名無しさん
09/01/01 14:00:50
比較を削除前の列に対して行うかどうかって話もあるし単純には無理だろう。
A B C D E で B を削除するとして C に対する比較は B C D なのか A C D なのか、とか。

257:デフォルトの名無しさん
09/01/01 14:41:09
誤爆してきた死ね

おすすめのC++入門サイトを教えてください。
Cは未経験です

258:デフォルトの名無しさん
09/01/01 14:45:18
AやBからはじめるとよいお

259: 【148円】 【大吉】
09/01/01 15:21:22
お年玉がほしい。

260:デフォルトの名無しさん
09/01/01 15:33:57
まずCをやったほうがいい。でないと死ぬ。

もし、正しい理解とかどうでもいいから速攻でC++が使えないと困るみたいな
状況だったら素直に質問にそう書いた方がいい。
(叩かれるかもしれないけど)

261:デフォルトの名無しさん
09/01/01 15:35:23
>>257
ロベール

262:デフォルトの名無しさん
09/01/01 15:36:10
べつにC++からでいいよ。
C++やってる連中が自分がCから入ったから、それがいいって思い込んでるだけ。

263:デフォルトの名無しさん
09/01/01 15:51:29
C++やってるうちにCもできるようになると思う

264:デフォルトの名無しさん
09/01/01 16:25:01
むしろC++からの方が分かりやすいよね。
C は初っ端から printf とか scanf とか面倒くさいし
(C++は桁数指定とかしないのであればフォーマット指定の必要がない)、
関数に変数の値を変更してもらうのにもポインタなんぞが必要になるし(C++なら参照で良い)、
Cから始める方がややこしいと言わざるを得ない。

265:デフォルトの名無しさん
09/01/01 16:32:29
STLから始めるのが初心者向き で生産的

266:デフォルトの名無しさん
09/01/01 16:42:46
char で文字列操作とか面倒くさいし(絶対バッファオーバーフローさせやがる)、
std::string 使わせた方がいいね。

267:デフォルトの名無しさん
09/01/01 16:55:06
させやがる、ねぇ・・・

268:デフォルトの名無しさん
09/01/01 16:57:22
既存のクラス使うだけなら、C++で入門もいいだろうね

269:デフォルトの名無しさん
09/01/01 17:54:06
補間機能

270:デフォルトの名無しさん
09/01/01 17:56:03
挫折して挫折して挫折して
そこでSTLですよ
(゚∀゚)神のキターですよ

271:デフォルトの名無しさん
09/01/01 18:58:09
STLなんて自分で実装してからその存在に気づいた

272:デフォルトの名無しさん
09/01/01 20:12:48
マルチスレッドで開放のタイミングで困っているんだが
GCが組み込まれるなら待とうかなぁ・・・
でも自前で組んだ方が速いのよね

273:デフォルトの名無しさん
09/01/01 20:20:51
>>272
boost::shared_ptrがマジお勧め。


274:デフォルトの名無しさん
09/01/01 20:27:06
boost(笑)

275:デフォルトの名無しさん
09/01/01 20:52:13
>264
問題は多くのサイトがC++でなくベターCから入門することくらいか

276:デフォルトの名無しさん
09/01/01 21:02:08
ガチ規格準拠でANSI-Cでもやれば、C++との明確な違いが分かると思うのだが、いかがなさいましたか、お客様

277:デフォルトの名無しさん
09/01/01 21:03:20
>>275
プログラムのプの字も知らない人に
いきなりオブジェクト指向を語っても
どうなのかなあと思わなくもない。

278:デフォルトの名無しさん
09/01/01 21:09:00
明日、本を買いに行くついでに漫画を立ち読みをしようと思います。

で・・・やはり、Cから始めたほうがいいのでしょうか?

それともC++からでいいのでしょうか?

279:デフォルトの名無しさん
09/01/01 21:42:20
新人にいきなりC++を教えてるけど問題ないよ。


280:デフォルトの名無しさん
09/01/01 21:42:41
ってかPCについてある程度の知識が必要だが、そこは大丈夫なのだろうか

281:デフォルトの名無しさん
09/01/01 21:50:35
プログラミングの学習では、早い時期から文字列の操作は避けては通れないと思う
そのためには、Cだといきなりポインタを理解しなくてはならず厄介。
C++は文字列クラスがあるから、そのあたりは緩やかに学べると思う。


282:デフォルトの名無しさん
09/01/01 22:03:57
>277
いやさ、オブジェクト指向以前に
C++なら例えば配列は初心者の扱うモノじゃないのに
何故かvectorより出て来たりさ
酷いのは#include <stdio>から始まったりとかね
それはほとんどC言語でしょって話

283:デフォルトの名無しさん
09/01/01 22:11:15
それはひどいな!

284:デフォルトの名無しさん
09/01/01 22:13:02
>>282
最近は iostream から始めるのも多いんじゃない?

285:デフォルトの名無しさん
09/01/01 22:15:55
>>282
お前何が言いたいの?

286:デフォルトの名無しさん
09/01/01 22:24:38
ちょっとかじりかけの中級者に限って、オブジェクト指向が何か特別な高尚で高度なものだと思ってしまいがち。

プログラムのプの字からオブジェクト指向で何ら問題ない。

287:デフォルトの名無しさん
09/01/01 22:25:16
と、ちょっとかじりかけの中級者が申しております。

288:デフォルトの名無しさん
09/01/01 22:26:15
>>287
死ね

289:デフォルトの名無しさん
09/01/01 22:26:37
世の多くの人は驚くくらい抽象思考が苦手なもんだ。
本当に驚くほどに。

290:デフォルトの名無しさん
09/01/01 22:27:38
>>288
死んでいただけないでしょうか?

291:デフォルトの名無しさん
09/01/01 22:30:44
>>288
どうなさいましたか?
上級者なら、スルーができように。

292:デフォルトの名無しさん
09/01/01 22:31:59
俺も C++ で始めた方が楽だと思うな。
ただ、C っぽい教科書が多いのは問題だね。
今やはじめから STL どんどん使った方が良い。


293:デフォルトの名無しさん
09/01/01 22:32:04
オブジェクト指向を特別視するのは、オブジェクト指向を理解していない人間

294:デフォルトの名無しさん
09/01/01 22:32:52
>>288
何ムキになってんのwwww

295:デフォルトの名無しさん
09/01/01 22:33:48
>>290 >>291 >>294
涙拭けよw

296:デフォルトの名無しさん
09/01/01 22:34:25
>>295
>>295
>>295
>>295
>>295
>>295


297:デフォルトの名無しさん
09/01/01 22:35:29
286 :デフォルトの名無しさん:2009/01/01(木) 22:24:38
ちょっとかじりかけの中級者に限って、オブジェクト指向が何か特別な高尚で高度なものだと思ってしまいがち。

プログラムのプの字からオブジェクト指向で何ら問題ない。

煽られる

288 :デフォルトの名無しさん:2009/01/01(木) 22:26:15
>>287
死ね

叩かれる

295 :デフォルトの名無しさん:2009/01/01(木) 22:33:48
>>290 >>291 >>294
涙拭けよw

298:デフォルトの名無しさん
09/01/01 22:36:20
>>296-297

299:デフォルトの名無しさん
09/01/01 22:36:41
>>298

300:デフォルトの名無しさん
09/01/01 22:37:25
みんな死ね

301:デフォルトの名無しさん
09/01/01 22:37:46
>>300
お前だけ氏ね

302:デフォルトの名無しさん
09/01/01 22:38:22
またこの流れか

303:デフォルトの名無しさん
09/01/01 22:38:32
C++でポインタを習う際、何故みんなは「〇〇型へのポインタ」よりも「代入した変数のアドレス」を意識してしまうんだろうか・・・
アドレスの値が印象的なのか・・・

304:デフォルトの名無しさん
09/01/01 22:38:42
崇高なオブジェクト指向が実は初歩的な概念であることを明らかにされた初心者が暴走し始めたな

305:デフォルトの名無しさん
09/01/01 22:39:57
>>303
みんなって誰だよ。アホか。

306:デフォルトの名無しさん
09/01/01 22:40:24
>>304
その勘違いはさすがに・・・w

307:デフォルトの名無しさん
09/01/01 23:01:20
ここで関数型信者の一言
      ↓

308:デフォルトの名無しさん
09/01/01 23:06:24
288 :デフォルトの名無しさん:2009/01/01(木) 22:26:15
>>287
死ね

309:デフォルトの名無しさん
09/01/01 23:06:38
とりあえず黙れ

310:デフォルトの名無しさん
09/01/01 23:07:29
とか言ってみる

311:デフォルトの名無しさん
09/01/01 23:07:50
オブジェクト指向は便利だけど実際必要かって言われると必要ないよ。
別に無くてもいい。
現にみんながOCaml使うときオブジェクト指向的な部分ってあんまり使わないでしょ。

まずはHaskellやってMonadに慣れといたほうが後々色々と応用が効くからそっちのほうがいいよ。


312:デフォルトの名無しさん
09/01/01 23:08:29
なにについて揉めてるんだ?

313:デフォルトの名無しさん
09/01/01 23:08:47
誰も必要だとは言ってないし。

314:デフォルトの名無しさん
09/01/01 23:10:49
>>309
wwwwwwwwww

315:デフォルトの名無しさん
09/01/01 23:11:36
こいつ病気だな。

316:デフォルトの名無しさん
09/01/01 23:12:34
>>315
wwwwwwwwww

317:デフォルトの名無しさん
09/01/01 23:12:49
315 :デフォルトの名無しさん:2009/01/01(木) 23:11:36
こいつ病気だな。

318:デフォルトの名無しさん
09/01/01 23:14:26
贈るほどでもない言葉


319:デフォルトの名無しさん
09/01/01 23:15:22
printf("俺様はプログラマーの卵だ!!");

320:デフォルトの名無しさん
09/01/01 23:17:09
これは酷い

321:デフォルトの名無しさん
09/01/01 23:17:31

贈るほどでもない言葉

322:デフォルトの名無しさん
09/01/01 23:18:34
#define loop while(1)

323: 【大吉】 【1003円】
09/01/01 23:29:13
C++はオブジェクト指向でいい

324:デフォルトの名無しさん
09/01/01 23:30:39
全角

325:デフォルトの名無しさん
09/01/01 23:31:42
だから何?

326:デフォルトの名無しさん
09/01/01 23:32:51
だから何?

327:デフォルトの名無しさん
09/01/01 23:34:07
なんか病気のコピペ厨が張り付いているんですけど

328:デフォルトの名無しさん
09/01/01 23:34:12
だから何?

329: 【だん吉】 【791円】
09/01/01 23:34:19
c++にするべきかな

330:デフォルトの名無しさん
09/01/01 23:34:44
するべき。

331:デフォルトの名無しさん
09/01/01 23:34:54
だから何?

332:デフォルトの名無しさん
09/01/01 23:49:10
壊れたラジオみたいだな

333:デフォルトの名無しさん
09/01/02 00:38:41
壊れかけ、ではなくて?

334:デフォルトの名無しさん
09/01/02 00:47:21
そう。壊れてる

335:デフォルトの名無しさん
09/01/02 00:49:37
センスない・・・

336:デフォルトの名無しさん
09/01/02 01:07:15
あきらめるな

337:デフォルトの名無しさん
09/01/02 09:00:22
>284
iostream、stringについては随分普及してきたと思う

でもvectorやsstream、fstream辺りは入門サイトだとなかなか出てこなくね?
この辺りが使えないと、配列やCライブラリを使わなきゃいけない場面が多くなる

個人的にはclass定義より詳細な文法より先に標準ライブラリやSTLの使い方だと思う
初っ端からSTL連発くらいのがC++初心者には良くないか?

338:デフォルトの名無しさん
09/01/02 09:39:43
>>332
学生さんだね。
社会に出ればわかるけど冤罪も罪のうち、疑わしきは罰するってのは法治国家の不文律だよ。

339:デフォルトの名無しさん
09/01/02 09:42:19
まぁ、とにかく動かしたいんだっていうならそっちのが早いだろうさ

340:デフォルトの名無しさん
09/01/02 11:02:06
>>337
その「入門サイト」とやらが、たまたま「class定義より詳細な文法より先に標準ライブラリやSTLの使い方」で「初っ端からSTL連発」なんだろ?

「初心者」がきちんとC++を学びたいなら、そんなわけのわからないサイトではなく、定評のある書籍や教育コースを受講した方がいいと思うけどね。

341:デフォルトの名無しさん
09/01/02 12:11:34
>>340
STLが、C++基本的構造(クラスなど)より先にあって
STLを実装するために、C++の基本構造が作られたんだ。
日本語を勉強するのに、文法的な構造から始めるか、
会話から始めるかという違いだろう。

342:デフォルトの名無しさん
09/01/02 12:21:35
STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。

1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。
しかしながらAdaは軍需産業以外ではあまり普及しておらず、
C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)
より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。

ベル研究所のアンドリュー・コーニグがこの動きを察知して、1993年11月のANSI/ISOのC++標準化委員会に
アイデアを提出するように求めるようなことがもしなければ、この作業は間違いなく、さしあたっては研究プロジェクトとして、
あるいはヒューレット・パッカード研究所のプロプライエタリなライブラリとして継続されたであろう。
提案は委員会で全面的に賛同を得て、すぐさま1994年3月のミーティングでのコーニグからの正式なリクエストへとつながった。

Standard Template Library - Wikipediaの抜粋
URLリンク(ja.wikipedia.org)

343:デフォルトの名無しさん
09/01/02 12:33:51
>>341は、「STLを実装するため」に追加された機能だけが、「C++の基本構造」とでもいいたいのだろうか。
アホか。

344:デフォルトの名無しさん
09/01/02 12:52:10
STLとC++の開発が始まったのは調べたら1979年らしい。
これらは別々の人たち、場所で開発されていて、STLを実装するために
C++の開発に大きな影響を与えたこととおもうが。

345:デフォルトの名無しさん
09/01/02 13:03:19
らしい。
おもうが。

346:デフォルトの名無しさん
09/01/02 13:06:38
聞きかじりと妄想だけで断言口調のやつ、多いな。

347:デフォルトの名無しさん
09/01/02 13:19:57
これからC++を始めるならOOPを基本とすべき。

348:デフォルトの名無しさん
09/01/02 14:01:13
今さら入門書って思うレベルだけどAccelerrated C++を読んでみたい。

349:デフォルトの名無しさん
09/01/02 14:02:04
ぜひどうぞ

350:デフォルトの名無しさん
09/01/02 14:15:37
ア、、アク、アクセ・・・
俺には無理だった・・・

351:デフォルトの名無しさん
09/01/02 15:23:16
>348
その本はまさに「配列より先にvector」の本やね

352:デフォルトの名無しさん
09/01/02 15:29:02
vector は vector で、
< > って何なのとか、2次元配列はどうやってつくるのとか、
面倒臭い事もあるので、
vector を先にやった方がいいと言える程手軽な物でもない。
at を使わないと境界チェックもしてくれないし。
動的配列より先に vector ってのなら構わんがね。

353:デフォルトの名無しさん
09/01/02 15:32:05
>>348を読んでから言え馬鹿

354:デフォルトの名無しさん
09/01/02 15:41:03
C++では、
Cのcontainer_of()相当のことは標準で出来ないでしょうか?

355:デフォルトの名無しさん
09/01/02 15:57:08
カプセル化を前提とするC++で
そういうものが必要になる事自体設計がおかしいと思われる。
もちろん標準でそんなことはできない。

356:デフォルトの名無しさん
09/01/02 16:02:59
クラスの継承がそれに相当すると主張するのは無茶すぎますかね?

357:デフォルトの名無しさん
09/01/02 16:03:35
買いに行ったけど売ってなかった・・・(´;ω;)

DVDコピーとかの本ばっか。

358:デフォルトの名無しさん
09/01/02 16:06:04
>>356
ダウンキャストか。

359:デフォルトの名無しさん
09/01/02 16:16:43
>>355,356
返答ありがとうございます。
継承使えばいいのかとも考えたのですが、
継承ではクラス内にlistを3個とか複数持たせる
ことは出来ないと考えました。

クラス内にlistを複数持つという設計が良くない
のかもしれませんが、代替案が浮かびません。

360:デフォルトの名無しさん
09/01/02 16:19:56
list と何か関係あるのか?

361:デフォルトの名無しさん
09/01/02 16:22:21
>>356
煽りとかじゃなく純粋に質問。
それどういう意味?

362:デフォルトの名無しさん
09/01/02 16:26:14
>>360
説明不足すいません。
Cでは、構造体内にlistを複数持たせておいても
それぞれのlistについてcontainer_of()を使えば、
包含する構造体は求まるので、
それと同等のことをC++で行う方法を考えていました。

363:デフォルトの名無しさん
09/01/02 16:43:29
#include <iostream.h>

int main()
{
cout<<"こんにちわ。"<<endl;
return 0;
}
include ファイルを開けません。'iostream.h': No such file or directory



364:363
09/01/02 16:46:19
自己解決しました。

365:デフォルトの名無しさん
09/01/02 17:09:32
>>361
listを継承したクラスで, listにアップキャストしてリストを作る
それをダウンキャストしたら得られるだろ?

listっていってもSTLのではないぞ

366:!omikuji !dama
09/01/02 17:17:03
C++のコンパイラはやはり
Borland C++Compiler でよろしいのでしょうか

367:デフォルトの名無しさん
09/01/02 17:18:35
無料版の方だったら今時ありえない、よした方がいい

368:デフォルトの名無しさん
09/01/02 17:25:06
>>362
複数なら継承ではなく包含させればいい。
そして、listにそれを所有するオブジェクトへのポインタまたは参照を持たせる。

369:デフォルトの名無しさん
09/01/02 17:27:25
>>366
対応している規格がが古いからお勧めできない。VC++2088 expressを薦める

370:デフォルトの名無しさん
09/01/02 17:27:40
container_of()相当で聞いてるんだから
リンク用のポインタ以外もたないlistなんじゃねーの?

持たせてもいいんだろーか?

371:!omikuji !dama
09/01/02 17:34:36
>>367
>>369
サンクス

372:デフォルトの名無しさん
09/01/02 17:38:01
ググってみたけど、container_ofって危険じゃないか?
引数を間違えて、構造体のメンバじゃない変数を与えてもコンパイルエラーにならないんじゃない?


373:デフォルトの名無しさん
09/01/02 17:38:27
>>368,370
ありがとうございます。
とりあえずSTLのlistを使うことを考えていたのですが、
自前で作るかSTLのlistを継承したリストを
作ってそいつにポインタ持たせればいいということですね。


374:デフォルトの名無しさん
09/01/02 17:43:47
>>373
なにか恐ろしい事をやろうとしているように見える。
STL のクラスは継承する事を全艇に作ってないので
基本的には継承しちゃだめ。

そもそも、list からそれを持ってるクラスをとってこようとしている時点でおかしい。
list を持っているクラスを通して list を扱うのが基本だ。

375:デフォルトの名無しさん
09/01/02 18:45:24
>>373
listとポインタを所有するクラスを作ろう

376:デフォルトの名無しさん
09/01/02 19:53:32
$ cat c_sizeof.c

#include <stdio.h>

int main(void)
{
printf("sizeof(\'\\x80\') == %d\n", sizeof('\x80'));

return 0;
}

/* EOF */
$ gcc -Wall -std=c99 -o c_sizeof c_sizeof.c
$ ./c_sizeof
sizeof('\x80') == 4
$ cat cxx_sizeof.cxx

#include <iostream>

int main()
{
std::cout << "sizeof(\'\\x80\') == " << sizeof('\x80') << std::endl;

return 0;
}

// EOF
$ g++ -Wall -o cxx_sizeof cxx_sizeof.cxx
$ ./cxx_sizeof
sizeof('\x80') == 1

 なぜ、C言語ではシングルクォートが、4 Bytesであり、C++では、1 Byteなのですか。

377:デフォルトの名無しさん
09/01/02 19:59:46
>>376
Cではint型で
C++ではchar型だからです

C++でのオーバーロードとかの兼ね合いだろうね

378:デフォルトの名無しさん
09/01/02 20:06:19
1バイトって256種類のパターンを表現できるんだっけ

379:デフォルトの名無しさん
09/01/02 20:06:52
普通はそう
Cにおいては絶対ではないが

380:デフォルトの名無しさん
09/01/02 20:06:58
cher型は嫌いです

381:デフォルトの名無しさん
09/01/02 20:12:08
ちーあ?

382:デフォルトの名無しさん
09/01/02 20:22:07
>>377
 ありがとうございます。そういうことだったんですね。
C言語とC++は、こういう細かいところでも違うんですね。

383:デフォルトの名無しさん
09/01/02 20:26:19
なぁ、チーフって何だ?

384:デフォルトの名無しさん
09/01/02 22:20:53
牛肉だろ

385:デフォルトの名無しさん
09/01/02 22:51:07
ロベール先生にお世話になることにしました

386:デフォルトの名無しさん
09/01/03 03:20:44
2ch終わった
2ちゃんねる、海外企業に譲渡 ― 西村博之氏からPACKET MONSTER INC.へ譲渡完了
URLリンク(www.rbbtoday.com)

ニコニコに移行して2chは完全に切る気やな

387:デフォルトの名無しさん
09/01/03 03:30:31
2chが終わるってのも、思い込みすぎかも。まぁ、2chは巨大になったことだし
もし消滅するなら、また別の人がサーバーを運営するだろうね。
手法などは、既に2chのを参考にすれば済むことだし、著作権だの
知的財産権だの、抵触せずに似たものはいくらでも作れるし。

388:デフォルトの名無しさん
09/01/03 03:35:19
IP記録を始めたときも、終わったというやつは大勢いたが、今まで生き残っている。
少なくともユーザに見限られるということはないだろうとは言える。

389:デフォルトの名無しさん
09/01/03 03:37:26
国内しかも個人が代表に見える格好だと
裁判とか税金とかうるさいから、
スケープゴートとして海外企業に移したんでしょ。

ひろゆきとしては譲渡していいことずくめだろ

390:デフォルトの名無しさん
09/01/03 03:44:35
大雑把に言って、内容は不特定多数の人が書き込んで出来上がっているし、
その不特定多数が消滅しない限り、やはり何かしらこういったコミュニティーは
継続するだろうしね。運営者も費用も必要だが。掲示板そのものに
スタイルはいくつかあれど、誰でもやれることだし。ただ、一生をそんなことに
ささげるだけの覚悟はあるかい?

391:デフォルトの名無しさん
09/01/03 03:55:02
つーか、ガンガン機能追加するわけでもないしね。
運用するだけじゃん。こんな掲示板
アウトソースすればよろし
レスは1000までって制限も永遠と変わんないしw

392:デフォルトの名無しさん
09/01/03 05:38:23
複雑な機能なんていらん
掲示板として書き込み/読み込みというシンプルな機能だけで十分
肥大化して良い事なんて無いってのはC++でもいえる

393:デフォルトの名無しさん
09/01/03 08:35:35
2ちゃんねらーらしくもない話してるな
スルーしろよ

394:デフォルトの名無しさん
09/01/03 11:03:58
protected private継承の違いについて

395:デフォルトの名無しさん
09/01/03 11:12:01
int i,j;
i=0;
while(j=10-i++) ってのはありでつか?

396:デフォルトの名無しさん
09/01/03 11:14:57
ありだけど、キミが期待した通りかはわからん。

397:デフォルトの名無しさん
09/01/03 11:15:30
えぇ、変数って2個いっぺんに宣言できるの!?

ってかありなんじゃない

398:デフォルトの名無しさん
09/01/03 11:26:55
>>395
おそらく"ってのはありでつか?"がエラーになる


399:デフォルトの名無しさん
09/01/03 11:49:30
文法上問題は無いが、何か気持ちは悪い。

400:デフォルトの名無しさん
09/01/03 12:03:01
>>395
あり。そう書いたとおりに動く。

401:デフォルトの名無しさん
09/01/03 12:22:43
>>395の話がCの宿題スレでよく分からん議論になってる

402:デフォルトの名無しさん
09/01/03 12:28:17
少なくとも、読むときには困るコードだな

403:デフォルトの名無しさん
09/01/03 13:13:25
>>401
おそらく>>395が向こうで代入式!代入式!ってファビョってる奴だと思う。
追い詰められてこっちに助けを求めてきたんだろ。

404:デフォルトの名無しさん
09/01/03 13:20:32
printfでも入れてコンパイル&動かせばいいだけじゃん > ファビオジニオール

405:デフォルトの名無しさん
09/01/03 13:51:18
なるほど、宿題スレか。
宿題の回答としてはまずいと思うけどな。
わけもわからず写して動作聞かれたら困るべ。

406:デフォルトの名無しさん
09/01/03 13:52:50
>>403
お前がコンパイラが通すから良しといっている基地外だというこは分かったから、
いつまでも必死にファビョってなさいw

407:デフォルトの名無しさん
09/01/03 13:55:38
本人登場w

408:デフォルトの名無しさん
09/01/03 13:56:14
>>403
見えない敵と必死に戦う低レベル講師乙。コードを客観的に考えるのと、
主観ばかりで意見する相手に対して、罵詈雑言で返すだけの無能は
黙っていた方が墓穴を掘らなくて済むぞw

409:デフォルトの名無しさん
09/01/03 14:03:49
>>408
キモッ

410:デフォルトの名無しさん
09/01/03 14:12:17
>>408
お前の発言が主観ではなくなんだと言うのだ

411:デフォルトの名無しさん
09/01/03 14:14:20
408は自己紹介としては良く出来てると思うぜ。

412:デフォルトの名無しさん
09/01/03 14:21:00
ん?
>>408の日本語がよく分からんのだが、
"コードを客観的に考え"てるのが誰で
"主観ばかりで意見する"のが誰で
"罵詈雑言で返すだけの無能"が誰だって?

413:デフォルトの名無しさん
09/01/03 14:22:11
>>395は、くせぇくせぇ、○ンコの臭いがぷんぷんすんぜ、こりゃ~生っ粋のクソースだ。
間違いねぇ、クソ麻呂のクソースだぜ、ぷぷぷw

414:デフォルトの名無しさん
09/01/03 14:34:49
マジレスするとgccだとコンパイル通らないよ
警告: 真偽値として使われる代入のまわりでは、丸括弧の使用をお勧めします
だってさ

415:デフォルトの名無しさん
09/01/03 14:36:20
あっ、一応警告だけでコンパイルも実行もできた。
j=10 i=1

j=9 i=2

j=8 i=3

j=7 i=4

j=6 i=5

j=5 i=6

j=4 i=7

j=3 i=8

j=2 i=9

j=1 i=10



416:デフォルトの名無しさん
09/01/03 14:36:49
>>414
そりゃ、警告だ
コンパイルエラーじゃない

417:デフォルトの名無しさん
09/01/03 14:38:13
警告をエラーにするオプションを立てればエラーにはなる。一応。

418:デフォルトの名無しさん
09/01/03 14:42:41
質問です.
・ソース
#include <windows.h>
#include <time.h>
#include <stdio.h>
typedef struct
{
time_t time;
WORD namesum;
BYTE name[254];
} HEADER1;
typedef struct
{
time_t time;
WORD namesum;
// BYTE name[254];
} HEADER2;
main() {
BYTE name[254];
printf("HEADER1 = %d\n", sizeof(HEADER1));
printf("HEADER2 = %d\n", sizeof(HEADER2));
printf("name[254] = %d\n", sizeof(name));
printf("HEADER2 + name[254] = %d\n", sizeof(HEADER2) + sizeof(name));
}

・実行結果
HEADER1 = 260
HEADER2 = 8
name[254] = 254
HEADER2 + name[254] = 262

HEADER2 + name[254]はなんで260にならずに262になったのでしょうか?

419:デフォルトの名無しさん
09/01/03 14:44:07
関係ない部分を削ってから質問した方がいいよ

420:419
09/01/03 14:44:54
↑ 「ソースコードの」、関係ない部分を

421:デフォルトの名無しさん
09/01/03 14:45:49
ソースは全部あげたほうがいいだろ。
どこが「関係ない部分」かわかるくらいなら自分で問題解決できるって。

422:デフォルトの名無しさん
09/01/03 14:46:18
>>418
HEADER2 + name[254] = 8 + 254 = 262
ってそのまんだだと思うが

423:419
09/01/03 14:47:48
で、ソースを見たが、8 + 254 はどう考えても 262

424:デフォルトの名無しさん
09/01/03 14:47:54
足し算w

425:419
09/01/03 14:48:48
>>421
まぁそうか・・・HEADER1はどう考えても関係ないんだが。スマソ

426:デフォルトの名無しさん
09/01/03 14:48:54
なんで260になると思ったのか説明して欲しい。

427:デフォルトの名無しさん
09/01/03 14:49:19
>>418の頭の中のバグを直すのは難しいw
消防からやりなおせってとこか

428:デフォルトの名無しさん
09/01/03 14:49:23
パディングの話だろ。

429:デフォルトの名無しさん
09/01/03 14:49:28
>422
HEADER2はHEADER1のname[254]をコメントアウトしているので
HEADER2 + name[254] = HEADER1に何でならないのかと思いまして.

430:デフォルトの名無しさん
09/01/03 14:51:06
それぞれ全く無関係だから。

431:デフォルトの名無しさん
09/01/03 14:51:14
パディングとかアラインメントとかでググれ

432:デフォルトの名無しさん
09/01/03 14:52:31
なんかバカが紛れ込んでて話をややこしくしてるな。
>>422>>423>>424>>426>>427>>430 あたりは無視してよろしい。

433:デフォルトの名無しさん
09/01/03 14:53:03
いやいや、型の定義は (おまえの疑問とは) 関係ないよ。
printfで出力された値を見れば、ただ足し算するだけ。

定義のところに疑問があるなら、疑問を持つべきは最後のprintf文じゃないでしょ?

434:デフォルトの名無しさん
09/01/03 14:53:56
>>433
だから分からん奴は黙っとけ。

435:418
09/01/03 14:54:25
パディングでぐぐったら答えが出てきました.初めて知ったよ.
みなさんありがとう.

436:デフォルトの名無しさん
09/01/03 14:54:32
お前は代入式ってファビョってりゃいいんだよw

437:デフォルトの名無しさん
09/01/03 14:55:41
>>436
クソワロタ

438:デフォルトの名無しさん
09/01/03 14:57:26
パディングやアラインメントならsizeof(HEADER2)の値が6じゃないのを疑問に思うのが普通じゃね?

439:デフォルトの名無しさん
09/01/03 14:57:34
数字だけ言うんだもん、足し算の問題だと思うわ
結局日本語で理解できなかったよ

440:デフォルトの名無しさん
09/01/03 14:58:38
>>434
まぁ解決したからいいいけど、2個目のprintfでHEADER2のサイズが HEADER1 - 256
になってない時点で疑問に思うべきだってことだよ

441:デフォルトの名無しさん
09/01/03 15:20:54
>>436
きもいぃ~~~~はいっ、きっ、もっ、いっ、キモイ!きっ、もっ、いっ、キモイ!
キモイィ~~~~

442:デフォルトの名無しさん
09/01/03 15:25:47
なんか頭のおかしい基地外が、自分の不備を指摘されてファビョってまつねw
あのwhile文の中は、条件式が適切なのに、代入式で済ませているなんて、
プログラマー失格だろ。コンパイラが警告しているのに、アホ過ぎ。黙ってろよ、ド素人w

443:デフォルトの名無しさん
09/01/03 15:29:52
簡単な質問で申し訳ないのですが
visual stdio 2005 無償版でデバッグ開始してみたところ
「0x0040115d でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
というメッセージがでて実行中に強制終了してしまいました。

これってどうすればいいんでしょうか・・・?


444:デフォルトの名無しさん
09/01/03 15:30:39
Linuxでは代入が正解だ。
オープンソースも知らない素人は黙っとけよ。
恥ずかしい奴だな。

445:デフォルトの名無しさん
09/01/03 15:32:30
なんか一匹、年明け早々、必死に基地外っぷりを発揮していますね(^ー^)v
アァ~~キモッキモッ、きっと鏡を見ると、キモイ面が映っているんでしょうね。
現実に目を向けようぜ、こんな文字列ばかりのスレじゃなくて、さ?

446:デフォルトの名無しさん
09/01/03 15:33:00
>>443
ゼロで割ることはできない。

447:デフォルトの名無しさん
09/01/03 15:33:15
>>443
何かを0で割ったんじゃね?

448:デフォルトの名無しさん
09/01/03 15:34:57
代入式でも条件式でも「式」でありさえすればなんでもいいのがCの仕様。
バカが条件式限定だと思い込んで恥をさらしてファビョりまくってるのが現状。

449:デフォルトの名無しさん
09/01/03 15:35:13
パディングって、詰め物だっけ
コンパイラの最適化って、害悪だと思う

450:デフォルトの名無しさん
09/01/03 15:36:00
最適化がなかったら困ったことになると思うが。

451:デフォルトの名無しさん
09/01/03 15:36:44
>>449
もう一度勉強しようね

452:デフォルトの名無しさん
09/01/03 15:37:19
>>446-447さん
ありがとうございました。解決したみたいです。


453:デフォルトの名無しさん
09/01/03 15:37:28
>>443
デバッグ開始してるなら、中断とか継続とか出ると思う。
中断すれば該当行にカーソルが行く。
その行で割り算してて、割る数が0なんだろう。

変数にマウスカーソルあてると数値見えたりもする。

454:デフォルトの名無しさん
09/01/03 15:37:56
>>443
visual stdioなんか使うからだろ。
gcc使え。
gccなら0除算OKだ。
いまどき0除算もできないコンパイラなんてM$製くらいだ。
これだからドザは駄目なんだよ。

455:デフォルトの名無しさん
09/01/03 15:38:37
パディングってワード間隔でデータを区切って
実行速度を速める為の手法だっけ

456:デフォルトの名無しさん
09/01/03 15:38:42
>>442
式は値を持つんだから、なんの問題も無いだろ。
警告がいやなら、while ((j=0-i++)) とでもすればいい。
なにも知らないド素人は黙ってろよw

457:デフォルトの名無しさん
09/01/03 15:38:50
>>444
これって乱数で過去レスを切り貼りするスクリプトでしょ。

458:デフォルトの名無しさん
09/01/03 15:39:24
やたらからんでくる愚かものがいるなw
さすが、言語スレ

いつまでも、こんな言語仕様のスレみてるのなんて学生ばっかだっつーの

459:デフォルトの名無しさん
09/01/03 15:39:52
みんな親切だな。
英和辞書引け、でいいのに。

460:デフォルトの名無しさん
09/01/03 15:40:21
>>455
そう

461:デフォルトの名無しさん
09/01/03 15:40:44
>>455
基本的にはそうだが、
アラインメントされてないと
データを読めない CPU もある。

462:デフォルトの名無しさん
09/01/03 15:40:57
ビットフィールドってので、
手動でやる場合もある

463:デフォルトの名無しさん
09/01/03 15:41:00
>>454
0で割るってどういうことか知ってる?

464:デフォルトの名無しさん
09/01/03 15:41:49
>>463
宇宙の法則が乱れる

465:デフォルトの名無しさん
09/01/03 15:42:15
学生や初心者が見るスレだからこそ、間違った知識は叩かれねばならない。

466:デフォルトの名無しさん
09/01/03 15:44:34
>>463
visual stdioが破壊されるってことだろ。
素直にオープンソース使えって。
無理するな。

467:デフォルトの名無しさん
09/01/03 15:45:39
>>460-462
アラインメントをキーワードにググってみた。
説明ありがとー

468:デフォルトの名無しさん
09/01/03 16:21:15
>>458
おいっ、絡まれてまともにレス出来ないなら、お前がレスしなきゃ良くね?
だってここ、誰もお前個人を特定、指定してレスを求めているわけじゃないんだが
言うからには自分の発言に責任を持っているんだろうな?
ほれ、鏡を見ろよ。醜い酷い面が映っただろ?誰だよそれ?
そう、お・ま・え・だよ?分かる?それが現実。自分が見たものはどうこう言うくせに
自分で自分を見られる唯一の手段、何か姿を映し出すものを見た時
己の醜さを目の当たりにするのさ。今のあんたみたく。
あんたの発言、第三者から見れば、きんもぉ~★だぜ?

469:デフォルトの名無しさん
09/01/03 16:22:56
自身thisのアドレスをprintするメソッドを持つクラスを作成して
以下のようにvectorに追加する前のインスタンス
とvector内のインスタンスでprint()を実行したのですが、

addr=0x804b008
addr=0x804b018
と別のアドレスになります。
同じになると思っていたのですが、
これはvectorに登録する時点でインスタンスが
コピーされていると考えればいいのでしょうか?

またその場合オーバーヘ%8

470:デフォルトの名無しさん
09/01/03 16:23:26
#include <iostream>
#include <vector>

using namespace std;

class MyClass {
public:
MyClass() {};
~MyClass() {};
void print() {
cout << "addr=" << this <<endl;
}
};

int main(int ac, char *av[])
{
vector<MyClass> vec;
MyClass *my = new MyClass();

vec.push_back(*my);
my->print();
vec.at(0).print();
delete my;

return 0;
}


471:469
09/01/03 16:24:46
>またその場合オーバーヘ%8
以降の続き

またその場合オーバーヘッドが気になるんですが、
皆さんどう対処してらっしゃいますか?

お願いします。

472:デフォルトの名無しさん
09/01/03 16:27:46
当然コピーが発生する。
ただ、
vector<MyClass*> vec;
vec.push_back(my);
みたいにアドレスをコピーする分には
インスタンスのコピーは発生しない。
ただ、メモリ管理を自分でしないといけなくなってしまう。
boost::ptr_vector を使うという手もある。

473:デフォルトの名無しさん
09/01/03 16:29:50
vectorは、メモリを確保してplacement newという機構とコピーコンストラクタ
で初期化される (記憶があいまいなのでちょっと違うかも)

で、言うとおりコピーはされる。ポインタのコピーに比べれば
効率は悪いけど、実際そんな小さなことが問題になることはほとんどない。

よっぽどでかいデータ構造をソートしまくるとかでない限り。

474:デフォルトの名無しさん
09/01/03 16:31:56
コピーのコストより、
コピーコンストラクタの実装がマズくて
問題が発生しないかチェックする方が重要だったりするよね。

475:デフォルトの名無しさん
09/01/03 16:47:54
いいよいいよー、そうやって自分を否定する者を否定し続けてなさい。
それぞ、井の中の蛙、大海を知らずと言ったものだ。視野が狭いんだよ、
ファビョっている基地外は。もちっとグローバルに、客観的に物事を見な。
自分が思ったことが全て正しい、そんなことを思っているのは、お子ちゃままで。
大人の世界は、いくら自分がそう思っても、現実は、事実とは違っていることなんて
いくらでもあると気づく。実行して見て、コードが間違っていないと思っていても
もっと効率が良いものが存在するだの、自分で考えたのに、後でおかしいと気づくことなんて
いくらでもある。ただ・・・

while(代入式) は不適切だ。

476:デフォルトの名無しさん
09/01/03 16:50:59
>>475
「いいよいいよー、そうやって自分を否定する者を否定し続けてなさい。
それぞ、井の中の蛙、大海を知らずと言ったものだ。視野が狭いんだよ、
ファビョっている基地外は。もちっとグローバルに、客観的に物事を見な。
自分が思ったことが全て正しい、そんなことを思っているのは、お子ちゃままで。
大人の世界は、いくら自分がそう思っても、現実は、事実とは違っていることなんて
いくらでもあると気づく。実行して見て、コードが間違っていないと思っていても
もっと効率が良いものが存在するだの、自分で考えたのに、後でおかしいと気づくことなんて
いくらでもある。」
ここまでそっくりそのままお前に返すよwww

477:469
09/01/03 16:59:01
>>472,473,474
ありがとうございます。
ポインタを使うのがしっくり来そうです


478:デフォルトの名無しさん
09/01/03 16:59:49
Cの規格に沿った構文解析器でも作ってみたら?
while(代入式)が不適切だろうがなんだろうが正しいんだから。

479:デフォルトの名無しさん
09/01/03 17:08:53
>>478
コンパイルできて規格合致であることは誰も否定していない。

480:デフォルトの名無しさん
09/01/03 17:11:38
>>479
まぁ確かに。
言いたかったのは、そこまで熱くならんでもいいんじゃね?ってこと。

481:デフォルトの名無しさん
09/01/03 17:13:34
>>480
478みたいな書き方だとまた話を蒸し返されそうな雰囲気だから勘弁してくれ。

482:デフォルトの名無しさん
09/01/03 17:13:44
>>479
いや、否定してる奴が約一名いるぞ
>>442 とか>>475 とか

483:デフォルトの名無しさん
09/01/03 17:15:22
>>481
失礼した。
書き方に気をつける。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch