[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/20 15:38 / Filesize : 230 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:27:47.92 ID:pbJTQx9M.net]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
ideone.com/ (時間帯によってはcodepadが重い事があるのでここも

703 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:39:38.29 ID:RTw9+8lc.net]
>>689
ただのlvalueでrvalue-refじゃないから

わざわざg++4.9.2入れて確かめたけど
思いっきしcannot bind 'int' lvalue to 'int&&'って怒られたよ
コード変更してない?

704 名前:689 mailto:sage [2015/07/17(金) 22:42:08.16 ID:R2Je5ZhD.net]
すまん
https://ideone.com/9zFOQP
のままだと手持ちのgcc 4.9.2 --std=c++14でもエラーになったわ
でも少しいじるとエラーにならなくなる
もう訳わからんけどもう少し条件を狭めて確かめようと思う
規格的にはどうなるのが正しいのよ
もう訳わからんわ

705 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:43:39.25 ID:RTw9+8lc.net]
g++5.1でも確認

ID:R2Je5ZhDは完全に荒らし目的だな
さっきからわざわざ間違った事を言って罵倒してるし
でなきゃ頭おかしい

706 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:47:34.08 ID:7V4RYMzc.net]
>>691
まるでrvalue-refならOKみたいなレスですね
int && rref = 0;
f( rref ); // error, 右辺値参照型の左辺値

>>692
ISO/IEC 14882:2014 13.3.2 Viable functions 段落3
「an rvalue reference cannot be bound to an lvalue」
って、VCのエラーと同じ文言だった

707 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:54:05.50 ID:R2Je5ZhD.net]
ああ分かった>>668がエラーになるのはfがテンプレートじゃないからだ
俺様R2Je5ZhDの>>682の発言は正しかった
>>693
お前ごときに荒らし呼ばわりされる筋合いないから

708 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:55:17.38 ID:RTw9+8lc.net]
>>694
>まるでrvalue-refならOKみたいなレスですね
語弊は認めるが、そんなつもりでは言ってないって
渡すのにmoveが必要とずっと言ってるだろ

709 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:42.59 ID:JLRiqZ4D.net]
>でなきゃ頭おかしい

QZが頭がおかしくないはずがない

710 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:49.28 ID:RTw9+8lc.net]
>>695
いや、お前は最初から間違ってるよw
確認もせずに否定したんだから

711 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:58:44.54 ID:R2Je5ZhD.net]
>>697
事あるごとにQZとやらを持ちだして



712 名前:ヲ避するクズ []
[ここ壊れてます]

713 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:02:06.68 ID:R2Je5ZhD.net]
>>698
お得意の難癖ですな
俺は>>668は質問者の意図からして不適切だと言っている

714 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:09:06.96 ID:RTw9+8lc.net]
>>700
それで難癖つけてるという難癖をつけるんです?
元はarguments deductionも含まれる話だから別に不適切じゃないよね?
何が不適切?

715 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:11:18.67 ID:7V4RYMzc.net]
はいはい
元「@ 右辺値をmoveするのは間違い?
 A だってmove(t)」
 ↓
普通の人:Aについて「tは左辺値」
バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」
普通の人:Aについて「tは左辺値。どうして理解できないの?」
バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」
 :

716 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:19:12.83 ID:R2Je5ZhD.net]
>>701
元々の質問は「moveに右辺値を渡してる例があるがそれは間違いじゃないのか」というものだろ
この場合moveは必要じゃないけど間違っているとは言えないというのが俺の言い分だ
江添のアレを引気合に出した質問者もアレだが
まあ質問者の問いと斜めな方向にズラして議論を混乱させるいつもの展開だわね

717 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:28:20.65 ID:RTw9+8lc.net]
>>703
もしあんたがID:qgsB8yVYなら自分のレスよく読めと言いたい
特に>>651

718 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:31:07.50 ID:97JZ5equ.net]
ID:qgsB8yVY = ID:R2Je5ZhD なの?
>>677
>Aのfに渡されるtは単なるTで参照型ですらないよ
とか言ってる時点で全然理解できてないのがまるわかりなんだよな
もう少し謙虚さがほしいところ

719 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:36:00.06 ID:RTw9+8lc.net]
元々の質問は江添氏の例でいいんだよ
それが質問者のベース知識の前提であって意図なんだから

ID:7V4RYMzcが言うように元の考えを正すことに意味があるのであって
ID:qgsB8yVYのように文を切り離して説明する事に意味はない
そんなの回答者が自己満足でしかない

720 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:43.54 ID:RTw9+8lc.net]
間違えた ID:qgsB8yVYじゃなくてID:R2Je5ZhDかw
まあ難癖とか言ってるから本人で間違いないと思うけど

721 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:53.66 ID:R2Je5ZhD.net]
ID:qgsB8yVY = ID:R2Je5ZhDだよ
別にIDを隠そうとしたわけじゃなく、なんかしらんけど書き込めなくなったので
ルータを操作してIPアドレス変えただけ
それを宣言しなかったのは謝る



722 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:37:44.63 ID:GBkyMXza.net]
いちいち人を叩くのを目的にしてたら、だんだん客層が悪くなる

723 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:48:06.74 ID:OGvYy5ui.net]
Qzフルボコッコだな
しかしメンタルつえー

724 名前:646 mailto:sage [2015/07/18(土) 01:48:45.91 ID:+Rsx7s6r.net]
議論がかなりヒートアップしてて書き込むのが恐れ多いのですが・・・

どうやら左辺値・右辺値および左辺値参照・右辺値参照というものを正しく理解していないのが
自分の混乱の原因みたいです。
そこで確認させていただきたいのですが、以下の lr と rr はどちらもlvalueなんでしょうか?

struct X{ } ;
int f() { return 0 ; }

int main()
{
  int i = 0 ; // 式じゃないので、i はrvalueでもlvalueでもない
  i ;   // lvalue
  0 ;  // rvalue
  X x ; // 式じゃないので、x はrvalueでもlvalueでもない
  x ;   // lvalue
  X() ;  // rvalue
  f() ;  // rvalue
  X & lr = x ;    // lr はlvalueへの参照だが、lr 自体はlvalue?
  X && rr = X() ; // rr はrvalueへの参照だが、rr 自体はlvalue?
}

# そういえば、右辺値やムーブ等を勉強するために相当ググって色々なサイトを見ましたが
皆微妙に言っていることが違ったりして、このスレで激論が生じるのもむべなるかなと感じた次第・・・
まぁそこがC++の面白さでもあるんですかね

725 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:54:58.09 ID:n8k6dcHe.net]
どっちも左辺値

726 名前:646 mailto:sage [2015/07/18(土) 02:05:32.81 ID:+Rsx7s6r.net]
>>712
ありがとうございます。やはりそうですか

ということは、>>673の例に戻ると、以下の理屈で正しいということでしょうか?

struct X {} ;

template < typename T >
void f( T && t ) // この t は「右辺値参照の左辺値」なので、std::move(t) で「右辺値参照の右辺値」に変換してやる必要がある
{
  if ( std::is_lvalue_reference<T>::value )
    X x( t ) ;
  else
    X x( std::move(t) ) ;
}

int main()
{
  X x ;
  X y ;
  f( x ) ;
  f( std::move( y ) ) ; // ここで y は右辺値に変換はされるが・・・
}


つまり、関数の仮引数は、右辺値参照だろうがなんだろうが、必然的に常に左辺値になってしまうということでしょうか

727 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:19:14.82 ID:n8k6dcHe.net]
名前がついてるからね

728 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:35:55.71 ID:o/QnrV3k.net]
>>713
右辺値参照の左辺値なんて戯言は忘れたほうがいいよ
fのtの型は
f(x) → X&(左辺値参照)
f(std::move(y)) → X(単なる左辺値)
となる
この辺のルールは非常に分かりづらいね

729 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:37:57.07 ID:ZEPmmqWJ.net]
>>715
std::move(y)を受け取るんだから
X&&でしょ

730 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:38:00.55 ID:YtyUigYQ.net]
>>715 ID:R2Je5ZhD さん?

731 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:56:53.52 ID:o/QnrV3k.net]
>>716
そう思うでしょ?
でもis_reference、is_rvalue_reference、is_lvalue_referenceを組み合わせて試した結果
参照でも何でもない単なるXになってるよ
テンプレートの引数型のdeductionルールは摩訶不思議
>>717
そうだよ



732 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:11:56.92 ID:ZEPmmqWJ.net]
>>718
reference collapsionで消える&&は引数についてる&&だと思ってたけど
Tについてる&&が消えるんだな
t自体の型は右辺値参照になってたわ

733 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:52:48.75 ID:C7KIqrbe.net]
結局 ID:R2Je5ZhD はTの型とtの型を混同して暴れてたわけ?

734 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:54:30.80 ID:TrlsMEs4.net]
>>718
>参照でも何でもない単なるXになってるよ
ならないよ
消えるのはTの&&で、tは右辺値参照だろ

735 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:55:36.18 ID:oxhll+kB.net]
f(T &&t);
「tの型はただのX」なんてのは当然
「TはただのX、(tはX&&)」の書き間違いだと思ってスルーしてたけど
まさか本気でf(X t)だと思ってたのか?

736 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:13:05.91 ID:o/QnrV3k.net]
>>720>>721、>722
恥ずかしいけどその通りだわ無闇に混乱してた
弁解すれば、江添のコードがTの型をチェックしてるのでそれに引きずられたw

でも最初の質問「moveに右辺値を渡すのは間違いか?」についての答えは変わらないけどね
moveは不要だが間違いではない

737 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:15:36.03 ID:n8k6dcHe.net]
>>650のはtは左辺値じゃないか
std::move(t)しなきゃtはコピーされちゃうぞ

738 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:21:54.38 ID:TrlsMEs4.net]
立て続けに無知を呈し、質問者より理解してないとバレた状況で、
最初の文は間違いではないとか言われてもね…
ヤケクソかな

739 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:23:50.36 ID:oxhll+kB.net]
>>723
誰も言わないのがかわいそうだから俺が言ってやろう
「moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
誰 も 否 定 し て な い ぞ(※>>725を除く)

そして↓のメッセージを読んで糞して寝ろ
ideone.com/MbV03B

740 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:25:41.81 ID:dgWh7n0F.net]
そもそも前提が間違えてるんだから
正しいも間違いもないぞ

741 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:26:56.93 ID:n8k6dcHe.net]
>>726
ないって言ってるんだから間違いであることを否定してるじゃん



742 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:29:32.77 ID:TrlsMEs4.net]
>>727
言っても理解しないよ
自分が勝った気になればそれで良いんだと思うよこのタイプは

743 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:31:09.70 ID:oxhll+kB.net]
>>727
前提も何も、単発質問の「moveに右辺値を渡すのはC++の文法的に間違いか否か?」についての回答ですが何か?

>>728
間違いであることを否定してますが何か?

744 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:32:18.67 ID:TrlsMEs4.net]
>>726
別に否定してないよ
自演かな?

745 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:01.33 ID:TrlsMEs4.net]
自演だな…
こいつ本当何でもやるなあ

746 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:22.58 ID:n8k6dcHe.net]
>>730
moveに渡してたのは右辺値じゃなかったでしょ?
>>650見てなかったのか?

747 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:29.70 ID:4GeWeiMQ.net]
はいはい都合が悪いのは自演自演

748 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:37:24.23 ID:dgWh7n0F.net]
ID:R2Je5ZhD == ID:o/QnrV3k == ID:oxhll+kB
だろ
なんか自演失敗して擁護が悲しいことになってるけど…

749 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:39:21.37 ID:o/QnrV3k.net]
>>726
ありがとう。糞して寝ます(明るくなってきちゃったハア)
>>729
勝った気になんてなってませんから!

750 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:41:13.10 ID:TrlsMEs4.net]
マジでこういう奴いるんだなあ
流石に時間と場所考えろって…

751 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:42:23.86 ID:o/QnrV3k.net]
>>735
R2Je5ZhD == ID:o/QnrV3k != ID:oxhll+kB
だよ
負けは認めますけど自演認定はやめて下さい



752 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:43:57.31 ID:o/QnrV3k.net]
無闇に自演認定するような精神障害者よりマシということで気持よく寝ます

753 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:51:05.98 ID:TrlsMEs4.net]
救えねえな

754 名前:702 mailto:sage [2015/07/18(土) 05:15:13.00 ID:oxhll+kB.net]
>>731
日本語が弱いようだから説明してやろう
『「(例とは無関係な一般的なC++の文法として)moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
(「別に間違いではない」というお前が固執し続けてきた意見は)誰 も 否 定 し て な い 』
という意味だ

755 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:02:20.46 ID:4iDO3/6j.net]
if ( std::is_lvalue_reference<T>::value )
  X x( t ) ;
else
  X x( std::move(t) ) ;
江添氏は実行されない方のコードもコンパイルは
されることを認識してたんだろうか
ありがちな記述ミスの形をしているので気になった

756 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:28:55.34 ID:o/QnrV3k.net]
>>742
その記事の江添は俺と同程度以上に誤解してるよ
まあそれは5年以上前の記事だけどね

でも「実行されない方のコード」というあなたもまだ誤解してる
C++のテンプレートの型ルールは本当に難しいね

757 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:35:03.61 ID:o/QnrV3k.net]
気分を害された人には申し訳ないけど
なにはともあれ俺にとってはテンプレート関数の理解が前進した一日でした まる

758 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:02:05.58 ID:4iDO3/6j.net]
>その記事の江添は俺(QZ)と同程度以上に誤解してる

まじかよ おどろきだ

759 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:41:46.95 ID:bOEkw/VG.net]
>>713
>void f( T && t ) // この t は「右辺値参照の左辺値」

わかってるとは思うけどそれは右辺値で呼ばれる時の話で
左辺値xで呼ばれるfのtは左辺値参照だぞ
f( x ) = f<X &>(x)
T && = X & && = X &
void f( T && t ) = void f(X &t)

760 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 15:56:20.31 ID:C7KIqrbe.net]
>>743
お前まだ理解できてないのかよ。Javaでもやってろ

761 名前:デフォルトの名無しさん [2015/07/18(土) 15:58:50.31 ID:ihNXNCvt.net]
なんでそんなに冷たいの?



762 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:29:10.29 ID:TrlsMEs4.net]
IDで追っていけばわかる
岡部健のご同類

763 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:01:18.70 ID:Kjz+WqVJ.net]
ID:TrlsMEs4も同類

764 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:03:29.52 ID:TrlsMEs4.net]
ほらな

765 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:10:23.40 ID:C7KIqrbe.net]
精神科医と激論を交わせるぐらいの頭脳の持ち主だとは思ってたけどまさかね

766 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:14:24.89 ID:TrlsMEs4.net]
念の為、俺が言及してるのはo/QnrV3kの事だよ

767 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 19:00:14.93 ID:Kjz+WqVJ.net]
同類なのは自分なのに気づかないなんて…

768 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 01:50:34.76 ID:uuV0Uo08.net]
もう誰が誰やら

769 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:13:06.80 ID:rizf9cO8.net]
自演 ID:n8k6dcHe=ID:TrlsMEs4
アスペ ID:oxhll+kB
キチガイ ID:o/QnrV3k

この三人を押さえておけばOK
あとはゲスト

770 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:23:02.44 ID:CK6DPL2A.net]
いちいち人を論じてスレ潰すのはやめろ
パン作り板にでも行ってこい

771 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:27:30.09 ID:rizf9cO8.net]
これは
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね



772 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:49:40.63 ID:iK86efF8.net]
規格に詳しい方に質問します
ideone.com/dU9dtb
これの"2"がcopyになってしまうんですが、どうしてですか?
規格のどの部分の規定によりこうなるのか知りたいです

773 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:56:51.32 ID:36W6lgqU.net]
都合が悪いレスは全て自演とか糖質かよw

774 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:11:02.31 ID:binYh77K.net]
>>759
static_cast<T&&>(t)

static_cast<X& &&>(t)
に展開されて
さらに
static_cast<X&>(t)
と&&減るからです
ttp://d.hatena.ne.jp/gintenlabo/20100916/1284657258
規格はここに書いてる

775 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:24:53.89 ID:iK86efF8.net]
>>761
ありがとうございます。規格の該当部分を精読します。
直感的には全部moveになって欲しいんですが、どういう理由でこうなってるんですかね?

776 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:30:36.07 ID:binYh77K.net]
>>762
f(x);で渡してるのは参照だから
プログラマが明示しないかぎり勝手にmoveされるのは困るでしょ
テンプレート内ではmoveではなくforward<T>(t)を使うべき
そうすれば右辺値が渡されればmove、左辺値が渡されればcopyされる

777 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:39:14.61 ID:iK86efF8.net]
>>763
f()では左辺値だろうが右辺値だろうがmoveしたいんです
static_cast<T&&>(t)で十分に明示になってると思うんですがねえ
どうしてこういう規格にならざるを得なかったのかもう少し調べてみます

778 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 07:20:27.46 ID:rizf9cO8.net]
これは
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね

779 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:35:41.71 ID:iu/AL9yj.net]
そりゃ左辺値参照へのキャストは左辺値を生み出すからね
melpon.org/wandbox/permlink/cjb6akMJJVY25X3Q

780 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:56:58.98 ID:rizf9cO8.net]
これは
>アスペ ID:oxhll+kB

781 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:01:27.47 ID:I4MCl2HA.net]
自演指摘されたからって必死すぎだろう
誤魔化す以外にそんなレスする奴がいると思ってるのか



782 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:33:02.83 ID:QpRpKQBg.net]
これも
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね

783 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:27:14.04 ID:iU13bViu.net]
cとc#とc++って全部別物ですか?

数学I、数学U、数学Vみたいに似通ったところはあるのでしょうか

784 名前:デフォルトの名無しさん [2015/07/19(日) 17:41:37.09 ID:F7g9AAKV.net]
別物だが似通ってはいる。
C⇒C++はほぼ上位互換性で、C#はC++++から名付けられた説があるし、
構文なんかはC++から取ってきてる。

785 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:44:56.51 ID:9N4IERvr.net]
C++
C‡
C♯
C#
C‡‡
C##

これ全部違うんだよ

786 名前:デフォルトの名無しさん [2015/07/19(日) 17:45:02.22 ID:F7g9AAKV.net]
C#への期待。アンダースからの返答 − @IT


C#に関して何か興味深い秘話はあるか?

「C#」という言語名を決めたときの話だが、もともとC#プロジェクトのコード名は、「COOL」(C like Object Oriented Language)だった。
だが、すでにほかの製

787 名前:品で使われているなどの理由で、この名前は採用されなかった。

ほかの案として、「EC」(イーシー)、「C2」(シー・スクウェア)、「C3」、また音楽の要素を取り入れて「C#」、元素の名前から「Cs」(シー・セシウム)などが出てきた。
「C#」を近くでよーく見ると、「C++++」に見える。そのような理由で最終的に「C#」という名前に落ち着いた。


http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html
[]
[ここ壊れてます]

788 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:22:29.91 ID:MTXI4NoM.net]
std::unique_ptr<>使ってて疑問なのですが。

MyObject* ary = new MyObject[3]; が
std::unique_ptr<MyObject[]> ary(new MyObject[3]); は理解できるんだけど

char* str = new char[3]; は、
std::unique_ptr<char> str(new char[3]); になる?
std::unique_ptr<char[]> str(new char[3]); になる?

789 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:36:25.78 ID:ckceIrW4.net]
std::unique_ptr<char[]>
こっち

790 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:56:36.67 ID:iU13bViu.net]
>>771
ありがとうございます
AndroidやiPhoneのアプリを作ってみたいんですが
C言語だとどれを勉強するといいでしょうか?

791 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:11:22.73 ID:iu/AL9yj.net]
>>775
間違いではないからと言って不適切なコードを正してあげないとは酷い人ですね



792 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:25:25.80 ID:ckceIrW4.net]
>>777
vectorやstringを勧めるということでしょうか?それともmake_uniqueですか?
私の頭では他にどう答えたらよいか思い浮かびませんでした。
どうか完璧な回答をご教示いただけませんか?

793 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 21:31:15.63 ID:ckceIrW4.net]
まあ書き方によっては依然としてリークの危険があるからmake_uniqueが使えるならそっちのほうが望ましいわな

794 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:09:14.54 ID:MTXI4NoM.net]
>>775,777-779
ありがとうございます。
vc10なので、std::make_unique使えないのです。

std::stringは使わないけど、std::basic_string<TCHAR>なら、たまに使います。
元JAVA使いなので、C++の基本を知らずに使ってるかも知れませんww

795 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:16:16.53 ID:ckceIrW4.net]
>>780
unique_ptrに拘る理由がないならvectorがお勧めだよ。

796 名前:デフォルトの名無しさん [2015/07/19(日) 23:29:29.46 ID:J4Ltq9z4.net]
#include <iostream>
#include <random>

int main(){
std::random_device rd;
std::cout << rd() << std::endl;

return 0;
}
で出力される値が何度実行しても同じになってしまうのですが何故でしょう

797 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:40:35.83 ID:uuV0Uo08.net]
seedを与えないとだめなんじゃないの?

798 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:51:24.10 ID:iK86efF8.net]
>>782
そのコードには全く問題ないよ
ライブラリ以下が正しく機能してない
もしかして組込み?環境を書いてもらわないと

799 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:52:11.35 ID:iu/AL9yj.net]
>>783
んなこたーない
ただの処理系のバグだろう

800 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:34:00.09 ID:d2x9KMbz.net]
>>782
環境についての情報を書いて

801 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:59:06.25 ID:eqB+tjvJ.net]
>>786
嫌どす
コードに全く問題ないなら
なんで環境を書かんといかんの



802 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:14:46.08 ID:d2x9KMbz.net]
>>787
それなら誰にも原因について確たる答えを用意できないことが最初から決まってしまうんだから
そもそも質問するな馬鹿

803 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:20:14.66 ID:UX3o5Q0t.net]
コードに問題なくてもstd::random_deviceの実装に問題がないとは限らない

804 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:25:44.00 ID:theP84i7.net]
普通の人間は目的を達成する(意図した結果が得られる)ための行動を取る
規格にこだわる人間はコードの問題かどうかを気にして実装の不具合には興味がない
これは後者のパターン

805 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:27:43.11 ID:0igkruKl.net]
>>790
原因究明を重視するのは、いずれにも属さないんだな

806 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:28:56.83 ID:/EsSmyHW.net]
質問者もアレすぎるけど、それ以上にわけの分からんのが湧いてきたな

807 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:41:29.65 ID:eKxXjUv7.net]
質問者にミスがあるはず、
というかおよそ原因には心当たりあるけど
環境が分からないと全然違ってる恐れがあるから今のところここでは書けないよな。

808 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:48:38.60 ID:Zw2a1PSh.net]
>>787
質問文の不備を減らせばもっと有益な情報得られるかもしれないのに

お前の損得に直結する岐路で、どうして情報得られない方を選ぶのだろう?
情報欲しがってない奴がどうして質問なんかしてるのだろう?
ひょっとして頭の障害か何か?

809 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:52:24.48 ID:theP84i7.net]
質問した後に回答者を煽るのは
オツムに障害を持った人の特長

810 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:22:46.21 ID:8grmR+UY.net]
>>787
> コードに全く問題ないなら

それまだ確定してないでしょ?
「処理系のバグだろう」という「だろう」レベルの意見をひとつ貰っただけで
早くも決めつけちゃってるわけですか?

とりあえずプログラマに向いてなさそう
ばいばい別世界の住民さん

811 名前:デフォルトの名無しさん [2015/07/20(月) 02:43:27.95 ID:gdO7FQR/.net]
初代スレに回答者の掟というのがあって、質問に対して質問で返してはならないとありませんでしたか?



812 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:47:08.95 ID:theP84i7.net]
へー、知らないけど
その情報が何か有益なの?

813 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:48:20.37 ID:UX3o5Q0t.net]
>>1
>質問者は必ず環境を書きましょう。
って書いてるのに書かないアホに付き合わなくてもいいでしょ

814 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:56:00.65 ID:theP84i7.net]
『ただしその場合』という大切な文言を意図的に削る人も困りものです

815 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:02:23.28 ID:/EsSmyHW.net]
>>761
規格の§8.3.2-5〜6を読んでみたんですけど
ここではキャストについては何も触れられていないように思えるんですが、どうなんでしょうかね?
§5.2.9(Static cast)には
 if T is an rvalue reference to object type, the result is an xvalue
とあってxvalueになってキャスト結果はmove可能に思えるんですが、何か見落としてますか?

816 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:16:00.47 ID:theP84i7.net]
>>801
〜761より抜粋〜
『static_cast<X&>(t)と&&減るから』

817 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:25:11.29 ID:/EsSmyHW.net]
>>796
>>782のコード自体には問題がないのは確定してるよ
これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる
考えられるのは>>782の環境ではハードウエアエントロピーを反映する機構が組み込まれていないのではないかと

818 名前:801 mailto:sage [2015/07/20(月) 04:06:41.03 ID:/EsSmyHW.net]
でもまあキャストの場合でも§8.3.2-6のルールが適用されるんだろうなあ
std::moveの実装はみんな参照をremoveしてから&&付けてるから
§8.3.2-6を字句どうりに読めばtypedef 、type template-parameter、decltype-specifier
以外ではT& &&はエラーにならなきゃいけないと思うんだが
俺が何か見落としてるんだろうけど何なのか分からない

819 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:23:53.19 ID:/EsSmyHW.net]
あっそうかtype template-parameterに当たるということか
Tがtemplate-parameterなら
T& &&は全てT&に変換されると
ホント難しいわ

820 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:39:27.70 ID:theP84i7.net]
ところがISO/IEC 14882:2014で template-parameterが削除されているのであった。
まあ結論は変わらないけど

821 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:42:29.86 ID:/EsSmyHW.net]
an attempt to create the type “rvalue reference to cv TR” creates the type TR.だな
やっと分かった
>>801>>804は寝言ですので忘れて下さいごめんなさい



822 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:48:36.62 ID:/EsSmyHW.net]
>>806
あっそうなんだ
買う気しないから最終ドラフト読んでたw

823 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:14:19.77 ID:qaRX0VWC.net]
>コード自体には問題がないのは確定してるよ
>これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる

とりあえずプログラマに向いてなさそう

824 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:49:53.29 ID:j3bVGMZR.net]
>>782
std::random_device rd;
std::cout << rd.entropy() << std::endl;
やってみ
これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
常に擬似乱数を返すようになっている

だから次善策として

std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());

を使うのが常套手段

srand((unsigned)time(nullptr));

を使うのと似ているね

825 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:11:47.48 ID:theP84i7.net]
>>810
ほうほう、疑似乱数を返すとどうして「次善策」に飛躍してしまうのですか?

826 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:12:41.50 ID:F9PK3kSV.net]
毎回乱数列が同じだと言うなら種が必要って事でしょね。

827 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:18:59.83 ID:Ebj0wxFB.net]
gccでwindows向けにコンパイルするとstd::random_deviceの中身がstd::mt19937になってるから
いつも同じ乱数吐くけどそれかね

828 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:26:27.58 ID:/EsSmyHW.net]
cygwinのgccではちゃんと毎回違う値になる

829 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:28:20.95 ID:/EsSmyHW.net]
>>812
std::random_deviceには種は与えられないから

830 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:30:11.56 ID:theP84i7.net]
>>810
>0 が表示されたらその処理系では真の乱数がサポートされてい

とりあえす嘘を教えるな

831 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:32:56.85 ID:/EsSmyHW.net]
>>809
お前は
とりあえず人間として生きるのに向いてなさそう



832 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:35:34.58 ID:UX3o5Q0t.net]
ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/tr1/random.h
ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B11/random.cc
cygwinに入ってるのはちゃんとしてるのかね
やっぱりmt19937を呼んでるな

833 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:36:39.90 ID:JaqU9d1i.net]
>>803
ハードウェアエントロピーを取得できるか確認せず
取得できると決め込んで処理して
その結果意図した挙動をしないのだから
明らかにコードの問題だろう

これでコードに問題ないと決めつけてるのはどうかしてる

834 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:39:02.21 ID:theP84i7.net]
ちなみに自分の環境では、TPMの無いコンピューターに入れたウブンコの
GCCだとentropy()が0を返すな
こいつは信用ならない

>>819
何故ですか?
規格上はハードウェア機能の有無に関わらず固定値を返してはなりませんよ

835 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:41:32.31 ID:1Qy7XHWg.net]
乱数だから実行環境ごとに挙動が変わるのが普通なんじゃない?

836 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:42:42.77 ID:j3bVGMZR.net]
>>816

>If the library implementation employs a random number engine instead of a real-random number generator,
>the value returned by this function is always zero.

>>811
rand()でもプログラム走らせる度に同じ乱数系列になってしまうだろ
アホか

>>813
「真の乱数」を返す方法はいろいろ議論されてるね
PIDを使うとか
Linuxには/dev/random
MinGWのgccは手抜きだな

837 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:43:44.83 ID:Ebj0wxFB.net]
疑似乱数だと変わらなかったりする

838 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:36.38 ID:/EsSmyHW.net]
>>816
規格の§26.5.6-5には
If the implementation employs a random number engine, returns 0.0.
とあるから>>810は嘘ではない

839 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:37.50 ID:theP84i7.net]
>>822
>instead of a real-random number generator
なるほどそれか、勘違いしたすまぬ

840 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:50:55.65 ID:/EsSmyHW.net]
cygwinのgcc(4.9.2)ではentropy()は0を返す

841 名前:ッどoperator()は毎回違う値になる []
[ここ壊れてます]



842 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:58:15.70 ID:ZwKNfUvh.net]
この流れなら聞ける
エントロピーってなに?

843 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:59:24.66 ID:/EsSmyHW.net]
規格の§26.5.6-6を見るとentropy()が0を返すような環境であってもnon-deterministicな値を返さなきゃいけないみたいだけどね

Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive.
It is implementation-defined how these values are generated.

844 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:02:57.44 ID:/EsSmyHW.net]
>>828はoperator()の話しね
>>819
ライブラリにバグが有り迂回措置をしなきゃならないことはままあることだけど
それと>>782のコード自体には問題がないことは別の話

845 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:10:17.00 ID:MKIWYupr.net]
バグじゃないんじゃね?

entropy()が0.0を返すのなら毎回同じ乱数系列になっても文句は言えないという事なだけで

846 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:22:06.61 ID:/EsSmyHW.net]
>>830
time()すらサポートできない環境もあるだろうけどな
でも規格ではoperator()はnon-deterministic random valueを返さなきゃならないことになってる
同じ種による擬似乱数ならnon-deterministicにはならない

847 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:24:22.43 ID:Ebj0wxFB.net]
規格がどうであろうがアホな環境があるのはしょうがない

848 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:25:45.09 ID:MKIWYupr.net]
>>831
いやいやoperator()は単に乱数エンジンを呼び出して次の新しい乱数を返すだけでしょ

849 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:26:23.38 ID:theP84i7.net]
正確にはoperator()はnon-deterministic random valueを返すか
または例外をスローしなければならない

850 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:27.11 ID:JaqU9d1i.net]
>>834
環境が毎度同じ値をハードウェアエントロピーとして返してたら例外にしようにも判断できないだろう

851 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:39.96 ID:/EsSmyHW.net]
>>833
entoropy()==0な環境ならそうだけど
問題はその場合の擬似乱数の種だよ
エントロピーを持った種を生成する手段が全くない環境ではstd::random_deviceは規格通りに実装できないと思う



852 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:38:55.35 ID:uNOqpDKk.net]
環境を明らかにして再現可能にしないと
本当の原因については何もかも憶測だわな

853 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:40:06.20 ID:/EsSmyHW.net]
>>834
§26.5.6-7に例外規定があるね
例外に該当するにも関わらず例外上げないならやっぱりバグだね

854 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:41:48.34 ID:theP84i7.net]
>>835
同じ値が返りうるものを使ってrandam_deviceを作ったら
それは処理系のバグです

855 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:56:27.72 ID:skw8xdRE.net]
>>839
じゃあ、/dev/randomは使えないんだな

856 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:07:53.20 ID:2F+fvzms.net]
>>839
そのような仕様は無い

857 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:16:22.99 ID:theP84i7.net]
>>841
仕様にあるかどうかじゃなくて
仕様を満たす物を作るかどうかという話なんだが
馬鹿には難しかったかな

858 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:18:07.44 ID:RGuMbU6U.net]
>>842
お前が言ってるような要求の仕様があるかないかだろ
馬鹿か

859 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:19:24.81 ID:19+QQn1h.net]
> 同じ値が返りうるものを使ってrandam_deviceを作ったら
> それは処理系のバグです

どうしてこういうデマを思いつけるの?
親の教育?

860 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:21:14.86 ID:theP84i7.net]
>>843
知らなかったのなら教えてやろう
>>828で規定されているのだよ

861 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:17.77 ID:CPoN3U++.net]
non-deterministic意味がわからなかったんだろう



862 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:53.22 ID:/EsSmyHW.net]
>>824を補足訂正しとくか
・ライブラリが擬似乱数を使うならentropy()はゼロを返さなければならない
・しかし、その場合でもoperator()は何らかの手段でnon-deterministicな値を返さなければならない
・それすら出来ないなら例外を上げなければいけない
>>810
>これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
>常に擬似乱数を返すようになっている
までは正しいが、それ以降はバグってるライブラリに対する迂回処置
規格を順守するならtry〜catchで確認しなければならないけどライブラリがバグってて例外上げないなら
意味がなく>>810みたいなことをやらなきゃならない
でもそんな環境ではstd::chrono::system_clock::now()やtime()が使い物になるかどうかすら試してみなきゃわからない

863 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:39:30.02 ID:kZPq/fe7.net]
>>845
そこにはそんなこと書いてない
書いているのは取得できなかった場合にthrowしろということだけだ

ハードウェアないしそれをエミュレートするソフトウェアが同じ値を返したときに
その不自然さの判定をライブラリーに要求する仕様は存在していない

そもそも非決定性乱数だと名乗る数列に対してそれが非決定性乱数でないと外部から証明することは不可能

864 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:41:33.14 ID:ewQgCmyw.net]
>>848
entropy()が0なら例外を吐くようにするとかの手段はある

865 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:42:27.08 ID:VhxPp0/8.net]
今日も
>自演 ID:n8k6dcHe=ID:TrlsMEs4
>アスペ ID:oxhll+kB
>キチガイ ID:o/QnrV3k
の不毛な規格論争が血気盛んですね

866 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:50:52.26 ID:CPoN3U++.net]
言葉遊びが好きだなあ

867 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:53:14.65 ID:5h6P6Rwy.net]
>>839
> 同じ値が返りうるものを使ってrandam_deviceを作ったら
> それは処理系のバグです

つまり、/dev/urandomや/dev/randomのようなユーザーが書き換えられる擬似デバイス
すなわち「同じ値が返りうるもの」を使ってはならない仕様だと言いたいのですね?

868 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:54:33.43 ID:miZegYar.net]
int rand() {return 0;}//乱数でないと証明することは不可能(^^)

869 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:56:56.05 ID:CPoN3U++.net]
言葉遊びして勝ち誇ってるには悪いけど
本当に同値しか返さないなら証明可能だぞ
むしろ反証ができないわけで

870 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:05:03.81 ID:ewQgCmyw.net]
手持ちの処理系(MinGW 5.1.0)だけど

#include <iostream>
#include <random>

int main()
{
std::random_device rd;
std::cout << rd() << std::endl;
}

何回走らせても 3499211612 が返り、例外を吐かない

result_type operator()();
6 Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive.
It is implementation-defined how these values are generated.
7 Throws: A value of an implementation-defined type derived from exception if a random number could
not be obtained.

と規格票にはあるけど、operator()が非決定性の乱数を返すとはどこにも書かれてない
擬似乱数でもいいから得られれば例外を吐かないと読めるんだが

871 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:06:57.42 ID:theP84i7.net]
(つд⊂)ゴシゴシ



872 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:09:28.33 ID:CPoN3U++.net]
>>855
>operator()が非決定性の乱数を返すとはどこにも書かれてない
少なくとも、前提はどうあれ明らかに書いてあるものを出して
どこにも書かれてないは嘘だろ

873 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:11:49.80 ID:ewQgCmyw.net]
あ、ごめんそうだな
じゃあこの処理系のバグだな

rd()を呼び出した時点でstd::exceptionを継承した例外を吐かなければ規格に一致してないわけか

874 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:14:36.84 ID:HS03ITz9.net]
どちらかというとコンストラクタの時点で非決定性乱数を返せるアテが無いってことで例外にして欲しいところ。

875 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:16:01.20 ID:CPoN3U++.net]
途中でプールが消える可能性もあるね

876 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:20:50.77 ID:theP84i7.net]
ちなみにコンストラクターが例外を出しても
規格に違反はしてないぞ

877 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:24:27.46 ID:CPoN3U++.net]
しかし規格に対してVCがより準拠して高機能で
gccが微妙な対応とは思わなんだ
(正確にはlibstdc++だけど)

878 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:30:25.55 ID:qtHFk0LE.net]
linuxで使う分には問題ないんだよ

879 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:45:33.88 ID:yFbTkFIh.net]
>>863
linuxでもurandom書き換えられたらwindowsと変わらない
linuxで要件満たすのは不可能

880 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:59:56.44 ID:ewQgCmyw.net]
www.argocorp.com/compo/IDQ/IDQ_PCI.html

こんなのでも差すしかないんじゃね

881 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 14:16:13.79 ID:/EsSmyHW.net]
量子状態が真に不決定的だという量子力学主流派の主張にだって反対意見は多くあるし(有名なのはアインシュタイン)
つきつめると結局ラプラスの悪魔の話にまでいっちゃう



882 名前:デフォルトの名無しさん [2015/07/20(月) 14:19:54.76 ID:kIIIo7Lt.net]
>>782 の者ですが
>>810 さんの
>std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());
を使うことで解決しました

ちなみに環境はwindowsのgcc4.9.2です

883 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 00:56:27.52 ID:tw33l9e0.net]
CからC++へ移ってクラスの活用を学び始めています
しかしメンバーが静的なクラスばかりになってしまい、
Class::Func()のような処理ばかりで、Cで関数使っていた頃との違いが実感できません

オブジェクト指向を身に付ける為に、こういう処理を作ってみると良いってモノがあれば教えて欲しいです

884 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:04:02.59 ID:iAnJqoKI.net]
>>868
そんなので作ってたら悪い癖が固まる
本でも読んでろ

885 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:13:35.48 ID:Ekp6Lmit.net]
C++クラスと継承完全制覇 とかいいのでわ?

886 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:31:58.55 ID:tw33l9e0.net]
>>870
ありがとうございます
早速本屋で探してみます

887 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:54:30.04 ID:BsRxe1GP.net]
>>868
何のためにstaticにしてんの?

888 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:03:44.28 ID:l6C/lcEi.net]
>>872
そりゃなんと言ってもデザインパターンだろ

https://ja.m.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

889 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:04:14.07 ID:l6C/lcEi.net]
あ、
×>>872
>>868

890 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:05:29.24 ID:tw33l9e0.net]
>>872
オブジェクト毎に持つ必要性が無い値だと思ったからです

DirectXやDirectInputの利用で、
初期化したデバイスのポインタをクラス変数として保持し、派生先のクラスで利用できるようにしてました
その結果、
DirectX::Initialize() とか、DirectInput::GetKeyState() のような処理を使わざるを得なくなりました
これではグローバル変数でデバイス保持してた、クラス未使用の頃とやってる事が同じだから何か違うなーと

891 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 21:29:05.54 ID:MZjkxTxw.net]
そういうもんですよ。
もうちょっとオシャレな人たちは、シングルトンを使う。



892 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:12:51.45 ID:N6B7rSAC.net]
クラスで共有するなら当然static使う

893 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:35:33.34 ID:V3PTIB1w.net]
それらの処理をやってる箇所まで内包させて
これ使えば全部やってくれるよ

894 名前:ってクラスにするのが
最終的な目標って感じかなぁ
[]
[ここ壊れてます]

895 名前:デフォルトの名無しさん [2015/07/22(水) 16:33:13.94 ID:vU2lJ4S0.net]
>>862
宣伝条項とか有るんでないの。
GNU製品を使う場合、商用製品を貶さなければならないとかさ。
よう知らんけど。

896 名前:デフォルトの名無しさん [2015/07/22(水) 18:52:41.66 ID:QLvVRyDz.net]
苦しんで覚えるc言語のサイトがアクセスできないんですが…

897 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:57:26.61 ID:KhraFoTS.net]
アクセスするまでに苦しめという親心だ

898 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:55:00.74 ID:Uuj8BVVu.net]
プログラミング初心者ってまず何をすればいいですか?

899 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:56:09.51 ID:KhraFoTS.net]
動く保証のあるプログラムの写経

900 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:00:47.95 ID:RSJsUGeJ.net]
写経したくなるような作りたいプログラムを見つける

901 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:59:56.40 ID:6tF8DM8V.net]
>>882
プログラミングを忘れ、まともな人生を歩む事を考える



902 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 21:51:13.30 ID:Md5kWR9m.net]
ある程度中身のわかるソフトの挙動を観察し仕組みを洞察する

903 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 23:02:09.87 ID:vClKc3rH.net]
>>882
「○○作ってみたい」から考え始めてそれを実現するための関数1つでも作ってみる

904 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 00:30:25.25 ID:5whcWqvP.net]
作りたいアプリのクラスを作ってしまおう (ストラウストラップ)

905 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 11:22:52.88 ID:Yxc4xF6u.net]
Androidスレにて回答が得られそうにないので来ました。

Android機器でC++ができると聞いてAIDEを購入したのですが、C++11を使う設定がわかりません。
LOCAL_CFLAGS := -std=c++11, LOCAL_CPPFLAGS := -std=c++11をApplication.mkに書いてもC++11のコードのコンパイルが通りませんでした。
検索してみたところ、Toolchainでgcc 4.8を入れれば良いと書かれていましたが、Toolchainの入れ方がわかりません。
GooglePlayで[NDK Toolchain]で検索してもそれらしいものが引っ掛かりません。
解法を教えてください。あるいは、どんなキーワードで検索したら解決しますか?

906 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 15:24:00.49 ID:1xg3cb1R.net]
そんなもん買わなくてもC++できるのに。

907 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:09:41.76 ID:5whcWqvP.net]
アンドロイドで遊びたいんですよ

908 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:56:05.66 ID:P0N6qRSq.net]
>>891
android studioじゃダメなん?

909 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:19:07.64 ID:s5ALrjlX.net]
実機でポロポロ動いての見て楽しむんですよ

910 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:21:00.21 ID:P0N6qRSq.net]
>>893
そういう事か。
エミュレータだと糞遅いもんなあ

911 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:05:42.76 ID:nCR9QL2r.net]
実は今入院中で、しかもはしたお金しかなくてノートPCが買えないので、スマホでC++を書いている状況なんですよね。
C4droidでC++11を書いていますが、タブ式のエディタでないことと、分割コンパイルができないことで大変苦労しています。



912 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:12:19.00 ID:pDMzRj5e.net]
そうですか

913 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:46:40.13 ID:/55SuOij.net]
Application.mk に
APP_CPPFLAGS := -std=c++11
って書けばいいんじゃないの

914 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 10:31:50.76 ID:pSI/1ixo.net]
どうして入院させられたのか理解してないんですね

915 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/01(土) 22:37:45.46 ID:/RIOF0J6.net]
ファイルやディレクトリーやワイルドカードを含むリストを、
パスファイル名のリストに展開したいのだが、いい方法はないだろうか?

916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:33:42.45 ID:CYsajC4S.net]
PowerShellには、フルパスを返す、Resolve-Path がある

Resolve-Path C:\TEMP\*.txt

C:\TEMP\test1.txt
C:\TEMP\test2.txt
C:\TEMP\test3.txt

917 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:36:31.87 ID:UaSYqc/x.net]
>>900
スレ違いは去れ

918 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:38:55.04 ID:+SVNoiwH.net]
>>901
いちいち五月蝿いんだよ。阿呆かよ。

919 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:40:51.05 ID:G4TAbL+8.net]
FindFirstFile(Ex) でワイルドカード使えるからまんま渡してFindNextFile する

(MSCなら)スタートアップのリンクモジュールを変える
実行時引数のワイルドカードを 展開済み引数にするのがあった記憶

920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:20:35.53 ID:77q907bZ.net]
ちなみに>>900=>>902=>>903=QZ

921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 07:46:12.30 ID:K1eGJczB.net]
jbbs.shitaraba.net/netgame/14889/
これのプログラム解明お願いします



922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:01:46.29 ID:+B7/KlLQ.net]
>>905
氏ね

923 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:27:28.43 ID:2WU/dKTq.net]
>>903
それボーランドのコンパイラじゃね?

924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:35:41.96 ID:zMJ+WguM.net]
これ系ではだめ?
https://msdn.microsoft.com/ja-jp/library/kda16keh(v=vs.120).aspx

925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:46:29.65 ID:SLv/zRdd.net]
win32api でいいのにラッパを使うの?gcc/ming とかでは使えないのに

926 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:39:18.72 ID:dv1hKBwd.net]
C/C++両方で使うヘッダファイルを書いています。

#ifdef __cplusplus
#include <cstdio>
#else
#include <stdio.h>
#endif

#ifdef __cplusplus
extern "C" {
using namespace std;
#endif

int OutputString(FILE* fp, const char* s, size_t n);

#ifdef __cplusplus
}
#endif

みたいに書いたら、using namespace std;をヘッダに書くな!と怒られました。
私は、usingの有効範囲は{ }の中だけだと思ったんですが違うんでしょうか?
できれば、

#ifdef __cplusplus
int OutputString(std::FILE* fp, const char* s, std::size_t n);
#else
int OutputString(FILE* fp, const char* s, size_t n);
#endif

みたいな書き方はしたくないんですが。

927 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:43:07.73 ID:t8uosJPh.net]
#ifdef __cplusplus
#define NAMESPACE_STD(TYPE) std::TYPE
#else
#define NAMESPACE_STD(TYPE) TYPE
#endif

int OutputString(FILE* fp, const char* s, NAMESPACE_STD(size_t) n);

928 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:58:03.10 ID:PIBA7Cur.net]
>>910
>C/C++両方で使うヘッダファイルを書いています。

C/C++両方で使う場合ってどう言う場合なの?

929 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 12:54:22.61 ID:qkkgbGkC.net]
>>910
extern の{}はスコープとは違うはず。
>>911みたいにしとけば?
#define STD std::
OutputString(STD FILE* fp, );

930 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:01:02.17 ID:dv1hKBwd.net]
>>912
>C/C++両方で使う場合ってどう言う場合なの?

色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。

なので、Cライブラリのヘッダファイルを修正していたんですが、std::size_t等をどうすべきか悩みまして…
>>911の方法でやってみます。ありがとうございました。

931 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:26:13.64 ID:ZNzZ9/K0.net]
>>914
> 色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
> C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。
それは、C++コーディング規約を変えた奴が無知で使えない奴だったというだけのような
気がするが…いずれにしろ現場は大変だな…



932 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:29:15.95 ID:ZNzZ9/K0.net]
言い忘れたが、そのヘッダーファイルはCソースのヘッダーファイルなので
C++からインクルードする場合の対処は必要だが、C++ソースのヘッダー
ファイルではない、従って#include <cstdio>を使う事自体が間違っている
可能性の方が高い

933 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/03(月) 17:39:41.05 ID:/P0N0OgP.net]
TypicalConsoleApp --- a template project of console application
https://github.com/katahiromz/TypicalConsoleApp

よろしくね!!!

934 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 19:13:07.32 ID:fubWtLYm.net]
>>917
なに?

935 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 23:03:14.14 ID:bvkPQc8b.net]
>>917
コミュ障は去れ

936 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:58:56.42 ID:r6nVJo7D.net]
>>916
バカは去れ

937 名前:デフォルトの名無しさん [2015/08/05(水) 17:14:25.78 ID:22Ehcq84.net]
visual studio関係のスレで聞くべき質問なのかもしれませんが,
相対パスについて(おそらく初歩的な)質問があります.

たとえば,指定したファイルを読み込んで処理をするクラス,
具体的には画像データを読み取るクラスImageReaderがあるとします.
処理内容は,ifstreamからファイルデータすべての情報およびサイズを
読み取って,各画像を表現する構造体に合わせた処理を行う単純なものと
します.実際に利用するとき,new式なら
 ImageReader* imager = new ImageReader( "imagefile's path" );
のようにファイルを指定するのが(初心者の間では?)メジャーだと
思います.
 これをvisual C++2013でビルドして実行可能ファイルを作成し,
実際に問題なく動くことをDebugフォルダ内に該当の画像ファイルを
ちゃんと置いてから実行して確認します.ここまでは問題ありません.

疑問なのはここからで,このDebugフォルダをたとえばデスクトップ上や,
外付けのUSBメモリに移した後,実行可能ファイルを開いてもちゃんと
動作してくれるのはなぜか,です.
実行可能ファイルを開くたびに再コンパイルされているなら,
場所が変わっても相対的な位置関係さえ気を付ければ大丈夫なのは
わかるのですが,再コンパイルなんてしているわけないですよね?
つまり,相対パスを次のようにした場合,
 "data/image/file.dds"
下のカッコでくくった部分が変更されても問題ないのかっていう疑問です.
 "(C:Visual Studio 2013\Projects\Game\solution\title)\data\image\file.dds"

938 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:23:15.82 ID:8Ly/MaH0.net]
・デバッガが相対パスの基点を Debug フォルダにして CreateProcess してる
(プロジェクトの設定で、あえて別のフォルダに変えることも可能)

・実行ファイル作って、そいつをダブルクリックした場合には
explorer が相対パスの基点を実行ファイルのおいてある場所にして CreateProcess してる

・実行ファイル作って、コマンドプロンプト(cmd.exe)からタイプして起動した場合には
そのカレントディレクトリを相対パスの基点として CreateProcess してる

実行ファイルへのショートカットを作った場合
ショートカットのプロパティの作業ディレクトリが相対パスの基点

939 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:40:58.78 ID:22Ehcq84.net]
なるほど,根本的に間違った認識を・・・
コンパイル処理でパスが埋め込まれるわけではないんですね.
良くできてるなぁ

ありがとうございました.

940 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:24:28.76 ID:n/R/gJe6.net]
>>923
そそ コンパイル時に、相対パスをフルパス化して埋め込むわけではない ってことだね
あくまで 記述したとおりの文字列を実行ファイルに埋め込んでる

ドライブ名からの絶対パスならば、実行ファイルが何処に居ようが、そのフォルダ決め打ちだし
相対パスならば、呼び出し側(デバッガ/explorer/コマンドプロンプト等)により基点からの相対になる

941 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:28:04.18 ID:IqH75krm.net]
カレントディレクトリの概念はコンソール使わないとイメージしにくいのかなあ
ショートカットのプロパティで作業フォルダとなってるのがそれだな。



942 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:28:55.75 ID:y9IIWzjN.net]
プログラムで使う画像なんかは、
実行時にexeのパスを求めて、そこから画像のパスを生成しないと、
コマンドプロンプトから起動した場合なんかに落ちるんだよね

943 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/05(水) 19:32:51.98 ID:L7EpLchZ.net]
GetModuleFileName

944 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:34:38.59 ID:4lOabosS.net]
>>927
誰も訊いてないから
コミュ障は去れ

945 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:57:31.39 ID:L7EpLchZ.net]
【初心者歓迎】

946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:09:32.44 ID:c8ZxAoVu.net]
初心者は歓迎
コミュ障は非歓迎

947 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:45:54.70 ID:BM+A+5/Q.net]
コテハンがかたなしだなw

948 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:43:13.34 ID:Eohg7Dz0.net]
あああ

949 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:32:25.11 ID:dHRwhHmw.net]
西城くーん

950 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:51:50.18 ID:Dbf8XOfd.net]
「ふつうのLinuxプログラミング」にfeof関数を使うなと説明がありますが
それはなぜですか?

951 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:58:35.07 ID:EREVH0u4.net]
>>834
「読んだ後」でないと「終端を過ぎてしまったかどうか」を検出出来ないからじゃね?



952 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 22:52:17.49 ID:dHRwhHmw.net]
使った事ないなぁ。
大体バイナリは最初にサイズ取得するみたいな。

953 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:27:36.40 ID:zjP+b/ec.net]
パイズリが最初にサイズ取得するやて?

954 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:30:32.06 ID:zjP+b/ec.net]
>>934
根拠も述べずに他人に変な思想を広めようとする本なんか
捨ててええぞ

955 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 05:51:04.91 ID:TpmJtB/J.net]
>>936
パイプからバイナリデータ貰うとかやったことないのか?
まあ、あまり一般的じゃないか...

956 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:11:34.86 ID:LfXppaJj.net]
>>939は日本語も読めないバカですね

957 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:16:20.23 ID:TpmJtB/J.net]
>>940
お前意味わかってないだろ...
知らないのになんで首突っ込もうとするんだろう

958 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 07:31:08.03 ID:LfA/skDI.net]
やったことないから使った事ないんだろって指摘なんじゃ?

959 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:36:53.73 ID:or9dNLa9.net]
>>934
その本に理由書いて無いの?
無いから聞いてるんだとは思うけど、どんな筆者なんだろうな…

960 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:45:45.74 ID:hYSXGduH.net]
あくまでエラーを格納してる大域変数を読みに行くってやつだから目的とそぐわない可能性があるってことですかね?
初心者なので私も気になります

961 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:04:45.10 ID:nYbrbIvI.net]
>>943
青木峰郎って人
根拠は見直してみたけどやっぱりないみたいです



962 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:19:42.57 ID:+IVNtZk/.net]
ループの継続判定に使うな、というのはあるね
バイナリの読み込みはバッファサイズ未満を読んだら終了、でいいんじゃ・・・

963 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:59:22.62 ID:TpmJtB/J.net]
feof 使うな
でググるとこう言うのがヒットするから、この辺りの話だろうね
d.hatena.ne.jp/hnw/touch/20130406

964 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:29:37.17 ID:nYbrbIvI.net]
>>946
>>947
つまり関数自体には問題はない
使い道がない
ということですか
ありがとうございました

965 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:53:02.34 ID:mCEKjMZK.net]
ファイルポインタ渡して下請け関数でなんらかの読み込みを伴う処理

下請け関数呼び出して、戻ってきた時
末端到達したのか、別件で途中脱出してきたのか確認するのに使えるかも?ぐらいかなぁ

966 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:56:43.50 ID:TpmJtB/J.net]
>>948
関数に問題はないし、使い道もある
単に間違って使われることが多いだけ
ストリームの状態じゃなくて、直前の入出力操作エラーの結果を示すって言う関数だからね

967 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:57:53.76 ID:kVT9f1nv.net]
>>949
まぁね でも結局ステータスを親に返すか って話になると思う。

968 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 12:35:43.89 ID:nYbrbIvI.net]
>>950
なるほど
ありがとうございます

969 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:42:06.64 ID:yKwsHF9E.net]
ネイティブc++のライブラリをCLRで使う場合、ライブラリ形式は動的(dll)と静的(lib)どちらも大丈夫ですか?
それとも後者しか使えない、などの制限があったりしますか?

970 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:47:38.59 ID:p+j059KJ.net]
前者しか使えません

971 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 18:50:47.34 ID:yKwsHF9E.net]
>>954
本当ですか?
海外のフォーラム見ると、静的ライブラリじゃないと駄目って言ってる人いるんですが、逆だったんですかね



972 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 02:50:11.88 ID:BCVAnZaZ.net]
>>955
URL

973 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 07:42:09.87 ID:AeYGcSnH.net]
CLRってなんだっけ

974 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:38.05 ID:mPByWcg9.net]
どっちもいける
/pureは後者だけか

975 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:59.06 ID:mPByWcg9.net]
おっと間違った前者

976 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/13(木) 14:28:34.67 ID:5WXSkhNu.net]
アンパンマン、新しい顔がたくさんできたよ!!!

E.A.T. (Eyeball Allocation Table)
https://github.com/katahiromz/EAT
A specialized memory management system in C++.

pstdbool --- portable stdbool
https://github.com/katahiromz/pstdbool

pstdint --- portable stdint
https://github.com/katahiromz/pstdint

よろしくね。

977 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:22:05.08 ID:DIZBxb65.net]
>>956
とりあえず3つほど、、、

https://social.msdn.microsoft.com/Forums/en-US/df1661eb-c01e-408d-a6e0-d64b17f2c6a6/how-to-refer-dll-in-ccli-application?forum=vcgeneral

forums.codeguru.com/showthread.php?461115-adding-dll-reference-into-managed-C-visual-studio-2008-project の一番最後のレス

stackoverflow.com/questions/8498947/adding-natively-compiled-c-dll-to-clr-c-project のHansさんのレス

978 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:28:30.60 ID:DIZBxb65.net]
つまり、dllをリンクするのにヘッダはもちろん、libも必要になるってことですか?

979 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:55:55.43 ID:aB+CmHXz.net]
libないと関数名をリンクできないだろ
ヘッダに書いてる関数名と、名前空間やらオーバーロードを解決してマングリングしたものの関係性がlibに記述されてると理解してる

980 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:05:39.09 ID:DIZBxb65.net]
>>963
どうも、Windowsには普通のスタティックライブラリ(Unix系での.aファイル)の他に
インポートライブラリというのがあり、両方とも拡張子がlibなんですね・・・
とんでもない勘違いしてました

981 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 23:49:09.88 ID:HDGJU3CK.net]
>>962
いえリンクの仕方によります>>963は嘘つきなので無視してください



982 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:40:11.01 ID:030ck1US.net]
>>963
調べたところ、インポートライブラリにはルックアップテーブル作成のための情報が入ってるらしいですね

>>965
インポートライブラリは暗黙的リンクには必要ですが、明示的リンクには不要ということですね

c++とは直接関係ない話題ですいませんでした。勉強になりました

ちなみに、今更聞くのもあれですがCLRってスレチですか?

983 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:52:02.66 ID:rxGnV8e7.net]
スレチだけど誘導せずに勝手にレスつけてるんだから気にするな

984 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 18:38:31.27 ID:N/BdRhBJ.net]
環境依存文字OKなんだからCLRも問題ない気はする

985 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 21:17:42.52 ID:mMb0xxGG.net]
まあ専用スレあるので素早い回答が欲しかったらそっちで

986 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:28:55.02 ID:BC6RDWNW.net]
visual studio 2013の
windowフォームで作成した
textBox1〜textBox64のテキスト内容を
まとめて変更したいのですが
少ない行数で簡単に変更する方法を教えてください。

textBox1->Text = L"aa";
textBox2->Text = L"aa";



textBox64->Text = L"aa";

987 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:49:06.40 ID:2TQ1sRCh.net]
配列にする

988 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:22:48.42 ID:mJ5AYOWE.net]
>>970
c++よりc#の方がform作り易いぞ

989 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:44:16.66 ID:3rmo/1Qf.net]
まとめて関数の引数にするため、クラス構造体などの引数化容易な集合として扱いたいが、
集合としては一つしか呼ばない量があります
.までが元々不要なうえ手間がかかり見づらくなるだけなので付けたくないのですが
省略のようなことはできないものでしょうか(以下は素人考え)
class Input{public:int A,B,・・;};
void f(Input in,・・){略};
#define A input.A #define B input.B ・・
int main(){
Input input;
A=・・; B=・・;・・;
f(input,・・);
}

990 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 08:50:55.30 ID:k3v/6O3B.net]
他所言語でおけ かな?

with 識別子
 . メンバー名 = 代入
 :
 :
end with

こいうのが欲しくなる気持ちはわからないではない

991 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:00:38.36 ID:G0vOLImE.net]
>>973
できるし、実際にやってる
有名どころでは struct in_addr とか

あと GCC の拡張機能で初期化だけなら
Input input = { .A=・・, .B=・・, ・・}



992 名前:;
のように書ける
[]
[ここ壊れてます]

993 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:21:01.38 ID:EUq24GhA.net]
引き数を取るコンストラクタを用意するだけじゃないの?

994 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 10:32:11.65 ID:EwR31uEA.net]
A, B 用のセッタ作れば良いだけじゃないのん?

995 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 14:31:46.84 ID:9q62HXi+.net]
union{
int i;
struct {
unsigned int a : 1;
unsigned int b : 1;
} BIT;
} hoge;//グローバル変数

void funcA(){
//hoge.aに対するいろんな処理(処理の内容はfuncBと同じ)
}
void funcB(){
//hoge.bに対するいろんな処理(処理の内容はfuncAと同じ)
}

Cで上記のような関数があるときに、funcAとfuncBの処理の内容を1つのコードにまとめるということはできないですか?
funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました

996 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:16:35.55 ID:EwR31uEA.net]
>>978
A, Bを同じクラスにするだけで良いのでは?

別解としてはtemplateを使う手もあるけど、多分そこまでするほどの事じゃないと察する。

997 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:19:27.93 ID:Fj/4E2oI.net]
ゴミレスしないでください

998 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:36:37.35 ID:DK3HdHSw.net]
hoge.a=func(hoge.a);
では駄目?

999 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:50:40.92 ID:joxnevy0.net]
func(&hoge.a)
func(&hoge.b)
じゃあかんのか

1000 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:55:37.74 ID:Fj/4E2oI.net]
ビットフィールドも知らないんなら、ゴミレスしないでください

1001 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:11:32.93 ID:9q62HXi+.net]
>>979
Cにclassなんかないんですが

>>981
処理でいろいろ条件分岐するのでそれでは意味がない

>>982
>funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました



1002 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:25:21.20 ID:t3K/aRMS.net]
ゲッターとセッターの関数ポインタを引数にする

1003 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:45:15.51 ID:9q62HXi+.net]
>>985
ありがとうございました

1004 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:03:51.94 ID:WInuKq4U.net]
ビットフィールド止めて &hoge とビットマスク渡せばいいような気もする

1005 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:31:30.33 ID:rfTaTQIO.net]
ちなみに>>975=>>977=>>987=QZ

1006 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 00:59:15.46 ID:o7p+NB2T.net]
>>984
なんで条件分岐があると >>981 がダメになるの? >>985 にできて >>981 にできないことなんて無いと思うんだけど。

1007 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 02:32:24.05 ID:KDudTXNJ.net]
次スレよろよろ

1008 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:10:45.87 ID:47QFVOwL.net]
ほい
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1439849418/

1009 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:44:08.07 ID:lMcZlJPi.net]
>>991
乙乙乙

1010 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:16:28.25 ID:mkEa0Vju.net]
>>989
でも使う側で代入しなきゃいけないってめんどくさくない?
>>985のほうはfuncAとかを呼び出すようにすれば関数ポインタがどうこうというのは気にせずに使えるし

1011 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:39:47.45 ID:O8W/9LGI.net]
うめしばー



1012 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:10.39 ID:/6UfQ5+D.net]
うめ

1013 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:59.14 ID:/6UfQ5+D.net]
うめ

1014 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:27.02 ID:/6UfQ5+D.net]
うめ

1015 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:55.03 ID:/6UfQ5+D.net]
うめ

1016 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:49:08.08 ID:/6UfQ5+D.net]
うめ

1017 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:50:26.34 ID:O8W/9LGI.net]


1018 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1019 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef