トップページ⇒tech
1001コメント287KB

スレを勃てるまでもないC/C++の質問はここで 5

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆h6A7qfFFu6 2008/12/29(月) 11:05:07
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
http://pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
http://pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
http://pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
http://pc11.2ch.net/test/read.cgi/tech/1221633708/
0002デフォルトの名無しさん2008/12/29(月) 11:24:20
                        /^\_
               ,ィー‐ '⌒´ : : : : ヽ: `ヽ、
          , :≦7: : : : : : : : : : : : : : :ヘ : : : \
         /: : : /: : : : : : : : : : :∧: : : : :', : : : : :\
    rー<⌒\_:_ /: : : : : : :/ : : : :} ',: : : : :}: : :ヽ: : : \
    |: : : : l::..::..:ヽ/: :/ : : : :/ /⌒′│j: : : ト: : : ヘ \: :ヽ、
    |: : : : |:::::::::::' : / : : : :│: : : /   |:ハ : : |ハ: :l : |: : :ヘ
    |: : : : |::::::::::i :│ : : : : { : : : ,イ气 リ ヘ : 心}: }: :|: : : :}
.   /|: : : : }::::::::::| : | : : : : /l: : :/{::ヘ_∧   j/{rイ: | : h: : :′
   ' :|: : : : l::::::::::{: ∧: : : /:ヘ: 〈{ �Y: : :}     �Y: |: / }: /
  {.:::|: : : : |::::::::::�W::{ : :/ : : :V  ゞzソ     \�W ,j/
  └┤: : : ヘ:___/⌒l: /: : : : :|    "   rー┐  }:ヘ
    | i: : : : : ヘ ー {^�W{: : : i: |      { .__{  厶/   >>1 乙!
    | }: : : : : : { : : ヽ、_|: : : l: l           / }
    |八: : : :∧ヽ`゛<ム : : h:{   ____ , く: : :│
    |{ }: : /  ヽ{     }: : :|ヘヽ、 /} : 八 } : : |
.      j/       ∧ : ト、\  ヽ\}  |: /リ
              / ヘ: :l \   } ヽ. j/
           /     ヽ{ ,ィー―ヘ   \
             /ー 、     f } /⌒}   //}/⌒ヽ
          /⌒ヽ、ヽ   /^\  こヘ 〃 に⌒ /ヽ、
            {⌒\ ヽ\{\  \}⌒ /   { ,/ /∧
0003デフォルトの名無しさん2008/12/29(月) 13:21:19
    ,,,..-‐‐‐-..,,,
   /::::::::::::::::::::::::ヽ        _,..-‐‐-..,,,
  l::;;-‐‐-:;;::::::::::::ヽ//-‐,,__ /:::::::::::::::::::::ヽ
  l:l    ヽ:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
  ヽ   /   :::::::::::::::::::::::::::::::::::::;-'^~~^'‐;;:l
   ~ヽ/      ::::::::::::::::::::::::::::::::ヽミ   .ll
    /         :::::::::::::::::::::::::::ヽ  ,.ノ
    /             ::::::::::::::::::::l'^~
  ‐/-,,   (●),    、(●)、 ::::::::::::l フフフ、>>1さんおつかれ
   l  ~^''   ,,ノ(、_, )ヽ、,,       :l
  '''l^^~~~    `-=ニ=- '    -‐‐‐--l-
   ヽ、 ,,,,    `ニニ´     ~^'‐..,,_/
    / (:::::}           ,,,, イ~'''
    l:  ~~           {:::::) ::l
   l:                ~~  l
   l、                 ,l>
   /^‐-,,____,,,,,,,,..................,,,,,,,__,,,.--ヽ
   ~‐‐'~             ^'‐‐~
0004デフォルトの名無しさん2008/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の引数と戻り値はこのままでうまいことやる方法はありませんか?
0005デフォルトの名無しさん2008/12/29(月) 15:06:27
それだけ見ると
boost::shared_ptr< X > x1 ;
にインスタンス入ってないだけみたいだけど?
0006デフォルトの名無しさん2008/12/29(月) 15:24:29
boost::shared_ptr< X > x1(new X) ;

とやると動くね
0007デフォルトの名無しさん2008/12/29(月) 15:26:31
別に動作に不具合が生じるわけではないが、

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

もする必要はないのかね。
NULL を Add しても意味ないっしょ。
そして、NULL を Add しようとしても無視するかどうか考える必要もある。
0008デフォルトの名無しさん2008/12/29(月) 15:42:05
boostするメリットって何?
0009デフォルトの名無しさん2008/12/29(月) 15:46:08
>>8
auto_ptrはコンテナに入れられない
0010デフォルトの名無しさん2008/12/29(月) 16:07:29
>>9
う、質問が悪かった
boostを利用するメリットって何?
STLで止まってるんだけど俺
0011デフォルトの名無しさん2008/12/29(月) 16:18:07
>>10
STLを始めとした標準関数・クラスにない機能がboostにはある。
001242008/12/29(月) 16:20:42
>>6,7
おっしゃるように全てnewします、すみません
0013デフォルトの名無しさん2008/12/29(月) 16:31:01
>>11
具体的に言うと?
0014132008/12/29(月) 16:34:16
ググったけど
日本に馴染むには時間がかかるね
0015デフォルトの名無しさん2008/12/29(月) 16:38:09
ワロス
0016デフォルトの名無しさん2008/12/29(月) 16:52:10
日本人はやる気が無いからな。
0017デフォルトの名無しさん2008/12/29(月) 17:17:41
エロス
0018デフォルトの名無しさん2008/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
0019デフォルトの名無しさん2008/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
0020デフォルトの名無しさん2008/12/29(月) 17:46:06
どうおかしいの
0021デフォルトの名無しさん2008/12/29(月) 17:58:55
なにこの寒いコード
0022デフォルトの名無しさん2008/12/29(月) 18:16:08
どういう意味ですか
0023デフォルトの名無しさん2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし
0024デフォルトの名無しさん2008/12/29(月) 18:25:54
補間機能w
0025デフォルトの名無しさん2008/12/29(月) 18:26:39
>こういうのは原則としてやめろ
これは賛同できる

>エディタの補間機能が働かなくなるし
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0026デフォルトの名無しさん2008/12/29(月) 18:28:04
HOKANKINOU
0027デフォルトの名無しさん2008/12/29(月) 18:29:08
その補間機能に痴漢機能はありますか
0028デフォルトの名無しさん2008/12/29(月) 18:31:56
>>19
実行したら文字化けした
マジレスすると、"文字列"と#文字列は等価じゃない。
#の方はコードに日本語が混じることになるから、文字化けするよ。
0029デフォルトの名無しさん2008/12/29(月) 18:39:56
うちは化けなかったがなあ
0030デフォルトの名無しさん2008/12/29(月) 18:40:28
>>28
修正したら上手くいきました。ありがとうございます。

>>23
的外れな意見はいりません。私は「なぜ表示がおかしいのか」を聞いたのです。
0031デフォルトの名無しさん2008/12/29(月) 18:41:18
>>29
コンパイラによるんじゃね?俺はBCCでやったら化けたよ。
0032デフォルトの名無しさん2008/12/29(月) 18:43:34
なるほど。化けなかったのはVC++でした。
0033282008/12/29(月) 18:44:36
あー、じゃあ>>28に書いたことは処理系依存ってことかな
0034デフォルトの名無しさん2008/12/29(月) 18:46:55
つうかプリプロセス結果を確認すれよ
0035デフォルトの名無しさん2008/12/29(月) 18:47:25
あれをどう修正したのか気になるw
0036デフォルトの名無しさん2008/12/29(月) 18:48:35
>>19 でこれを思い出した。
ttp://www.kojima-cci.or.jp/fuji/computerbooks/c/c.modula2.html
0037デフォルトの名無しさん2008/12/29(月) 18:56:00
修正しました

#include <stdio.h>

int main(void)
{
    pritnf("パースペクティブ京都マン\n");
    getchar();
    return 0;
}
0038デフォルトの名無しさん2008/12/29(月) 19:01:02
>>37
お前馬鹿か、まだエラーが出るんだけど
WinMainが未解決だよ
0039デフォルトの名無しさん2008/12/29(月) 19:03:20
エ デ ィ タ の 補 間 機 能
0040デフォルトの名無しさん2008/12/29(月) 19:05:27
>>38
Win厨が何寝言ほざいているんだか。
0041デフォルトの名無しさん2008/12/29(月) 19:09:13
まじれすかよ
0042デフォルトの名無しさん2008/12/29(月) 19:10:53
補間機能が働いたんだよ
0043デフォルトの名無しさん2008/12/29(月) 19:12:12
これは補完機能のせいだよ
0044デフォルトの名無しさん2008/12/29(月) 19:16:19
補間機能って便利なのか?
0045デフォルトの名無しさん2008/12/29(月) 19:19:29
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし

らしいよ
0046デフォルトの名無しさん2008/12/29(月) 19:23:00
補完機能だな。
0047デフォルトの名無しさん2008/12/29(月) 19:23:34
補間機能ww
0048デフォルトの名無しさん2008/12/29(月) 19:42:55
ゼルゲノム
0049デフォルトの名無しさん2008/12/29(月) 20:41:23
人類補間計画が発動したと聞いて
0050デフォルトの名無しさん2008/12/29(月) 20:44:06
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし
0051デフォルトの名無しさん2008/12/29(月) 21:15:33
よく考えてみたら「補間」ってどういう意味だかわからねえ
0052デフォルトの名無しさん2008/12/29(月) 21:29:20
それは>>23が知っているんじゃないか?


23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし
0053デフォルトの名無しさん2008/12/29(月) 21:46:50
そんなに引っ張るネタか?
0054デフォルトの名無しさん2008/12/29(月) 21:47:48
>>51
( ) を書いたら、関数の引数の数に応じて適切な数のコンマが自動的に挿入されるとか。
0055デフォルトの名無しさん2008/12/29(月) 21:50:21
>>51
間に線引くとか
0056デフォルトの名無しさん2008/12/29(月) 21:56:57
>>53=>>23
0057デフォルトの名無しさん2008/12/29(月) 21:57:48
23 :デフォルトの名無しさん:2008/12/29(月) 18:24:20
>>19
こういうのは原則としてやめろ
エディタの補間機能が働かなくなるし
0058デフォルトの名無しさん2008/12/29(月) 22:02:16
>>37
#define pritnf printf
が抜けてる
0059デフォルトの名無しさん2008/12/29(月) 22:10:20
修正しました

#include <stdio.h>
#define pritnf printf
int
main
(void)
{pritnf("パースペクティブ京都マン\n");getchar();return 0;}
0060デフォルトの名無しさん2008/12/29(月) 22:11:45
なんか改行が変な感じに。。

#include <stdio.h>
#define pritnf printf

int main(void)
{
    pritnf("パースペクティブ京都マン\n");
    getchar();
    return 0;
}
0061デフォルトの名無しさん2008/12/29(月) 22:15:32
>
0062デフォルトの名無しさん2008/12/29(月) 22:22:47
>>57
ジサクジエン王国?
補完と補間の違いがそんなに気なるか?
明らかに不自然だけど
■ このスレッドは過去ログ倉庫に格納されています