エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
前スレ
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://mevius.2ch.net/test/read.cgi/tech/1478440682/
探検
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
2017/07/18(火) 07:07:27.20ID:vzMDiUgd
2017/07/18(火) 15:31:46.97ID:PYVrHLeZ
ほす
2017/07/18(火) 18:40:03.50ID:R/mOsefM
まさか短時間に20レスしないと落ちる?
2017/07/18(火) 19:38:57.23ID:u0V8o5mb
そんなことで落ちるならレス数一桁のスレが大量に残ってるわけないだろ
5デフォルトの名無しさん
2017/07/20(木) 23:03:44.79ID:kpkY/QGw 右辺値参照がネットのどの記事をみてもわからないので書籍に手を出して見ようと思います
右辺値参照についてをわかりやすく取り扱ってる参考書籍があれば教えてください
右辺値参照についてをわかりやすく取り扱ってる参考書籍があれば教えてください
2017/07/20(木) 23:51:51.38ID:z9hoJ4wh
ネットで探して出てくるいつもの説明が一番マシではないかという気がしてならない
7デフォルトの名無しさん
2017/07/21(金) 00:25:40.36ID:cbDQlmdo ・見分け方
lvalueは、名前がある
rvalueは、名前がない
・rvalueの特徴
名前がないということは使い捨ての一時的なオブジェクトだから、処理が終わったら捨てられる
・使い分けの理由
代入演算子(=)や、関数の戻り値に使う時や、vectorなどのコンテナに放り込む時には、
一旦オブジェクトがコピーされるが、rvalueだと分かっていたら、勝手にmoveしてくれるので処理が速い
特に、でかいデータを持った独自のクラスの場合にコピーよりmoveが速くなる
この機能を使いたかったら、クラスのmoveコンストラクタとmove代入演算子(=)を定義しておくこと
でも、それは面倒だろうから、ある条件を満たしたらコンパイラが勝手に作ってくれる
・条件
独自クラスに次のいずれの定義もしていないこと
a) コピーコンストラクタ
b) コピー代入演算子
c) デストラクタ
C++歴1ヶ月の俺が答えてみるテスト
lvalueは、名前がある
rvalueは、名前がない
・rvalueの特徴
名前がないということは使い捨ての一時的なオブジェクトだから、処理が終わったら捨てられる
・使い分けの理由
代入演算子(=)や、関数の戻り値に使う時や、vectorなどのコンテナに放り込む時には、
一旦オブジェクトがコピーされるが、rvalueだと分かっていたら、勝手にmoveしてくれるので処理が速い
特に、でかいデータを持った独自のクラスの場合にコピーよりmoveが速くなる
この機能を使いたかったら、クラスのmoveコンストラクタとmove代入演算子(=)を定義しておくこと
でも、それは面倒だろうから、ある条件を満たしたらコンパイラが勝手に作ってくれる
・条件
独自クラスに次のいずれの定義もしていないこと
a) コピーコンストラクタ
b) コピー代入演算子
c) デストラクタ
C++歴1ヶ月の俺が答えてみるテスト
8デフォルトの名無しさん
2017/07/21(金) 00:50:30.03ID:cbDQlmdo moveコンストラクタを作ったら気づくと思うが、処理内容は結局コピーコンストラクタと同じなわけ
とどのつまり、ポインタをメンバーに持ったクラスを定義する時に有効なんだよ
コピーコンストラクタ(lvalue)だと、コピー元は存在し続ける可能性があるから、
必ず1から全データを作り直して、ポインターのポイント先を新データにしないといけない
でも、rvalueで捨ててもいいデータだと分かっていたら、捨てるデータを捨てずにそのまま使って
ポインタのポイント先をその捨てるデータにすればよいから、楽で速いよねという話
とどのつまり、ポインタをメンバーに持ったクラスを定義する時に有効なんだよ
コピーコンストラクタ(lvalue)だと、コピー元は存在し続ける可能性があるから、
必ず1から全データを作り直して、ポインターのポイント先を新データにしないといけない
でも、rvalueで捨ててもいいデータだと分かっていたら、捨てるデータを捨てずにそのまま使って
ポインタのポイント先をその捨てるデータにすればよいから、楽で速いよねという話
2017/07/21(金) 00:56:26.30ID:joLx1qFD
右辺値参照なら
https://srad.jp/~taro-nishino/journal/507551/
が一番わかりやすい
これ読んでわからなかったらまだ手を出すのが早すぎたと思って諦めたほうが良い
本を買っても無駄な出費になるだろう
そして↑のページを見つけるのに検索してて出てきたのが↓
https://woorex.com/06_yahari/1994_01.html
で、全然読んでないが、こういった文章に価値はないと思う
ネットの文章のすべてに価値があるわけではないと思ったわ
https://srad.jp/~taro-nishino/journal/507551/
が一番わかりやすい
これ読んでわからなかったらまだ手を出すのが早すぎたと思って諦めたほうが良い
本を買っても無駄な出費になるだろう
そして↑のページを見つけるのに検索してて出てきたのが↓
https://woorex.com/06_yahari/1994_01.html
で、全然読んでないが、こういった文章に価値はないと思う
ネットの文章のすべてに価値があるわけではないと思ったわ
2017/07/21(金) 01:02:33.71ID:joLx1qFD
11デフォルトの名無しさん
2017/07/21(金) 01:04:55.21ID:kH4Xa8wr12デフォルトの名無しさん
2017/07/21(金) 01:15:36.94ID:uK7tgvol まぁ、あれだよね。
右辺値と右辺値参照の違いを理解できるとスッキリするんだけどね。
右辺値と右辺値参照の違いを理解できるとスッキリするんだけどね。
2017/07/21(金) 02:26:47.25ID:9vgFXXAq
14デフォルトの名無しさん
2017/07/21(金) 02:39:34.56ID:cbDQlmdo 使う目的が違うの?
15デフォルトの名無しさん
2017/07/21(金) 02:47:35.89ID:cbDQlmdo 俺の理解では、moveしたいからそのためにmoveができる条件を定義してるだけだと思うけど
コンパイラーがどういう条件の時に右辺値と扱えるかどうかを示すために
それが、参照に&マークを使っているという歴史的経緯でややこしくなってるだけでしょ
コンパイラーがどういう条件の時に右辺値と扱えるかどうかを示すために
それが、参照に&マークを使っているという歴史的経緯でややこしくなってるだけでしょ
2017/07/21(金) 02:51:29.22ID:joLx1qFD
まずもって
> lvalueは、名前がある
> rvalueは、名前がない
がおかしいということでは?
> lvalueは、名前がある
> rvalueは、名前がない
がおかしいということでは?
2017/07/21(金) 07:39:48.91ID:9vgFXXAq
そうだな
「lvalueは、名前がある」という誤った知識を注入されていることもあるが
右辺値(rvalue)についての説明が始まって最後まで右辺値参照の話が無いのは良くないな
「lvalueは、名前がある」という誤った知識を注入されていることもあるが
右辺値(rvalue)についての説明が始まって最後まで右辺値参照の話が無いのは良くないな
18デフォルトの名無しさん
2017/07/21(金) 07:46:07.93ID:cbDQlmdo レベルの低いスレだな
19デフォルトの名無しさん
2017/07/21(金) 07:53:53.57ID:cbDQlmdo お勧め本の提示ができないばかりか、自分の言葉で説明もできずにただただ罵るだけ
突っ込まれると粗探しをし始める
まぁ、本当に理解してる人間がこんなスレ覗く暇ないわな
突っ込まれると粗探しをし始める
まぁ、本当に理解してる人間がこんなスレ覗く暇ないわな
2017/07/21(金) 08:31:50.37ID:9vgFXXAq
2017/07/21(金) 08:43:30.27ID:xjFWQMIy
2017/07/21(金) 09:09:12.41ID:F3uzVYNc
他の言語ではこの概念出てこないの?どこが違うの?
2017/07/21(金) 10:43:02.49ID:YiUdVm2o
他言語では見たことが無いな
参照の仕組みが近いのはC#だと思うが右辺値参照の概念は無い
static int X;
static ref int M() { return ref X; }
static void Main () {
M() = 100;//「M()」実質の左辺値
ref int x = ref M();//「ref M()」実質の左辺値
ref int rx = ref x;
rx++;
Console.Write(M());//「M()」実質の右辺値
}
参照の仕組みが近いのはC#だと思うが右辺値参照の概念は無い
static int X;
static ref int M() { return ref X; }
static void Main () {
M() = 100;//「M()」実質の左辺値
ref int x = ref M();//「ref M()」実質の左辺値
ref int rx = ref x;
rx++;
Console.Write(M());//「M()」実質の右辺値
}
2017/07/21(金) 11:42:16.76ID:joLx1qFD
他言語では代入演算子でオブジェクトをコピーしたり
まるでオブジェクトを基本型であるかのようにふるまわせる概念が無いからな
なぜなら他言語にはGCが有るからね
GCがあって、オブジェクトは常にnewして使うから
勝手にディープコピーされるとか、そういうことは考える必要がないね
逆にC++はGCが無いから・・・
もしC#で右辺値参照があり得るとしたらstructに関してだが
C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから
やっぱり要らないな
まるでオブジェクトを基本型であるかのようにふるまわせる概念が無いからな
なぜなら他言語にはGCが有るからね
GCがあって、オブジェクトは常にnewして使うから
勝手にディープコピーされるとか、そういうことは考える必要がないね
逆にC++はGCが無いから・・・
もしC#で右辺値参照があり得るとしたらstructに関してだが
C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから
やっぱり要らないな
2017/07/21(金) 11:52:40.57ID:XYgV/slE
GCがあるから委譲と複製を区別しなくて済むってのに違和感
26デフォルトの名無しさん
2017/07/21(金) 12:22:05.32ID:C+EZcupv 1==1 の結果が 2でも-1でもなく 1 だってのは
仕様書のどこに書いてありますか?
仕様書のどこに書いてありますか?
2017/07/21(金) 12:25:57.68ID:joLx1qFD
他言語は普通に代入などすれば、基本型はコピーでオブジェクトは委譲だ
C++は普通に代入などすれば、基本型もオブジェクトもコピーだ
で、メタプログラミングの観点から見て、何が起こるかということだな
C++は無駄なディープコピーが発生しやすい仕様なのだわ
C++もnewすれば他言語と同じになるが、GCが無いので常に有効ではない
やはりナマポはクラスでラップして・・・って事になるので
適切にコピーなりmoveなり寿命管理してもらわないと破綻する
C++は普通に代入などすれば、基本型もオブジェクトもコピーだ
で、メタプログラミングの観点から見て、何が起こるかということだな
C++は無駄なディープコピーが発生しやすい仕様なのだわ
C++もnewすれば他言語と同じになるが、GCが無いので常に有効ではない
やはりナマポはクラスでラップして・・・って事になるので
適切にコピーなりmoveなり寿命管理してもらわないと破綻する
2017/07/21(金) 12:37:14.45ID:YiUdVm2o
>>26
ほれ
ISO/IEC 9899:2011 6.5.9p3
Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int.
ほれ
ISO/IEC 9899:2011 6.5.9p3
Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int.
2017/07/21(金) 13:04:34.65ID:C+EZcupv
2017/07/21(金) 13:30:56.58ID:YiUdVm2o
>>29
残念ながら2011より前の規格は知らぬ
残念ながら2011より前の規格は知らぬ
2017/07/21(金) 13:49:35.62ID:JOiJxqKd
C99は同じ節の同じ段落にある。
C89は不明だが、もしそんな基本部分が変化してたら大騒ぎになってたはずなので同じだろう。
C89は不明だが、もしそんな基本部分が変化してたら大騒ぎになってたはずなので同じだろう。
2017/07/21(金) 13:54:13.46ID:YiUdVm2o
>>29
89と内容等価ということになっているANSI/ISO C90を入手した
6.3.9(==,!=)は6.3.8(大小比較)を参照していてそこには
yields 1 if the specified relation is true
とある
つまり1になる
89と内容等価ということになっているANSI/ISO C90を入手した
6.3.9(==,!=)は6.3.8(大小比較)を参照していてそこには
yields 1 if the specified relation is true
とある
つまり1になる
2017/07/21(金) 15:17:08.56ID:P7F/0MU3
>>9
横からだけど、すごく分かりやすかった。ありがたい。
横からだけど、すごく分かりやすかった。ありがたい。
2017/07/21(金) 19:19:00.46ID:6hIUsyMM
>>24
GC 関係ないわな
> 勝手にディープコピーされるとか、そういうことは考える必要がないね
> C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから
なぜか自信満々で頓珍漢な思い込みを披露されてもな
GC 関係ないわな
> 勝手にディープコピーされるとか、そういうことは考える必要がないね
> C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから
なぜか自信満々で頓珍漢な思い込みを披露されてもな
2017/07/22(土) 01:20:33.15ID:oqulLxLp
into sokuに1か2以外を入力したとき1か2を入力されるまでループさせるのをやってみたいんですが
scanf("%d", &soku);
while (soku != (1 || 2)) {
printf("もう一度入力してください。\n希望する 1\n希望しない 2\n");
scanf("%d", &soku);
}
こう書くと2を入力してもループしてしまいます。
1か2が入力されたらループを抜けるにはどう書けばいいんでしょうか?
scanf("%d", &soku);
while (soku != (1 || 2)) {
printf("もう一度入力してください。\n希望する 1\n希望しない 2\n");
scanf("%d", &soku);
}
こう書くと2を入力してもループしてしまいます。
1か2が入力されたらループを抜けるにはどう書けばいいんでしょうか?
36片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 01:34:09.94ID:Scnyb+6Y soku != 1 && soku != 2
2017/07/22(土) 01:36:10.92ID:oqulLxLp
>>36
できました。そういう風に書くんですね。ありがとうございました。
できました。そういう風に書くんですね。ありがとうございました。
2017/07/22(土) 01:38:48.73ID:aL/Y+CP+
()が強いので1||2が先に計算されて1になってしまう。
2017/07/22(土) 01:40:28.07ID:ewNbHc5x
!(soku == 1 || soku == 2) (1 または 2 )ではない
⇒ soku != 1 && soku != 2 1ではない かつ 2ではない
⇒ soku != 1 && soku != 2 1ではない かつ 2ではない
2017/07/22(土) 01:47:45.17ID:oqulLxLp
いろんな書き方もできるんですね!
勉強になります。ありがとうございます。
勉強になります。ありがとうございます。
2017/07/22(土) 06:19:41.71ID:RRuLA+SK
C++1zでかっこよく書けるようになる。
そう思っていた時期がありました
そう思っていた時期がありました
2017/07/22(土) 14:34:43.25ID:9V10kE5p
>>38
なんで3じゃなく1になるの?
なんで3じゃなく1になるの?
2017/07/22(土) 14:51:10.38ID:ewNbHc5x
2017/07/22(土) 14:51:24.55ID:o3Mfi2ju
1|2なら3
1||2は1
1||2は1
2017/07/22(土) 15:12:08.99ID:9V10kE5p
難しいのね…
48片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 18:39:33.61ID:WTRjQogU50片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 18:48:30.61ID:WTRjQogU 無限集合の場合は集合の内包的定義により、離散的な論理学に還元され、やはり成り立つ。
2017/07/22(土) 18:50:49.49ID:Yr9CVNZl
52片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 18:57:46.94ID:WTRjQogU A={ x | x ∈A }.
B={ x | x ∈B }.
A∩B={ x | x ∈A ∧ x∈B }.
このように、集合の元の存在は論理学に還元される。
B={ x | x ∈B }.
A∩B={ x | x ∈A ∧ x∈B }.
このように、集合の元の存在は論理学に還元される。
53片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 19:05:08.09ID:WTRjQogU 論理学の真理値表→論理学のド・モルガンの定理→集合論のド・モルガンの定理
>>52
ん、それって A, B, C ‥と数えられる世界の中では、いずれ到達できると思う。
でも、力学とか解析学とかをやるときは、ぎっしりつまった実数を相手に論理を組むよね
実数を相手に考える世界では、かぞえられる、とかいう性質を前提にしてはいけないんだと思うよ
まあ立場の問題かもしれない、計算機は数えられる世界で考えればいいことなのかもしれない
いま読んでる教科書の最初の方での∀∃∩∪を読むたびに思うのです
よく「証明は読者の演習としよう」で苦しむのです、これ、やめて欲しいんですけどね
∩∪の羅列である命題にドモルガンを振り返るときれいに解決するのですが
そんなことでいいのだろうか、と常々思っているのでした
ん、それって A, B, C ‥と数えられる世界の中では、いずれ到達できると思う。
でも、力学とか解析学とかをやるときは、ぎっしりつまった実数を相手に論理を組むよね
実数を相手に考える世界では、かぞえられる、とかいう性質を前提にしてはいけないんだと思うよ
まあ立場の問題かもしれない、計算機は数えられる世界で考えればいいことなのかもしれない
いま読んでる教科書の最初の方での∀∃∩∪を読むたびに思うのです
よく「証明は読者の演習としよう」で苦しむのです、これ、やめて欲しいんですけどね
∩∪の羅列である命題にドモルガンを振り返るときれいに解決するのですが
そんなことでいいのだろうか、と常々思っているのでした
55片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 19:16:19.03ID:WTRjQogU 何も数えていないぞ。
x∈Aというのはxの性質を表しただけだ。
集合論の内包的定義を否定するのか?
x∈Aというのはxの性質を表しただけだ。
集合論の内包的定義を否定するのか?
>>55
分割して分割して最後に行き止まりがあるから、その推論はなりたつと思うんです
でも分割して分割して分割して‥終わりがない場合には、その推論は成り立つのでしょうか?
成り立つものとして仮定しているだけなんじゃないでしょうか?
分割して分割して最後に行き止まりがあるから、その推論はなりたつと思うんです
でも分割して分割して分割して‥終わりがない場合には、その推論は成り立つのでしょうか?
成り立つものとして仮定しているだけなんじゃないでしょうか?
57片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 19:32:50.77ID:WTRjQogU 集合論で、無限演算(極限)が必要になることは少ない。無限集合においても扱う性質が有限であることが多いからだ。
58片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 19:38:35.09ID:WTRjQogU 無限集合では、1つ1つ数えるのではなく、性質(述語)に着目する。集合は述語の組み合わせで表せる。
取り扱う集合を表す述語が有限の表現で表せないなら、人間はそれを考えることすらできないだろう。
取り扱う集合を表す述語が有限の表現で表せないなら、人間はそれを考えることすらできないだろう。
59片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 19:47:57.23ID:WTRjQogU そんなに気になるなら、疑問をなくすために本格的に数学者になって『集合の極限に関する研究』という本を出版してはいかがか。
60片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 20:00:32.46ID:WTRjQogU すまない。オレは数学の話になると神経質になるんだ。
2017/07/22(土) 20:10:05.26ID:aL/Y+CP+
トラウマがあるのか。
62片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 20:27:14.25ID:WTRjQogU A={ x | x ∈A }. B={ x | x ∈B }.
A∩B={ x | x ∈A ∧ x∈B }.
A∪B={ x | x ∈A ∨ x∈B }.
~A={ x | ¬(x∈A) }.
~(A∩B)={ x | ¬(x ∈A ∧ x∈B) }.
~A∪~B={ x | ¬(x ∈A) ∨ ¬(x∈B) }.
ここで、¬(x ∈A ∧ x∈B)={ x | ¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
~(A∩B)=~A∪~B と言える。
A∩B={ x | x ∈A ∧ x∈B }.
A∪B={ x | x ∈A ∨ x∈B }.
~A={ x | ¬(x∈A) }.
~(A∩B)={ x | ¬(x ∈A ∧ x∈B) }.
~A∪~B={ x | ¬(x ∈A) ∨ ¬(x∈B) }.
ここで、¬(x ∈A ∧ x∈B)={ x | ¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
~(A∩B)=~A∪~B と言える。
63片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 20:34:24.27ID:WTRjQogU ここでα=(x∈A)、β=(x∈B)とおけば、命題α、βによる命題論理学のド・モルガンの定理に還元される。
α、βについて真理値表を作れば、容易に命題論理学のド・モルガンの定理が証明できる。□
α、βについて真理値表を作れば、容易に命題論理学のド・モルガンの定理が証明できる。□
64片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 20:38:22.42ID:WTRjQogU >>62
訂正。
(誤) ここで、¬(x ∈A ∧ x∈B)={ x | ¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
(正) ここで、¬(x ∈A ∧ x∈B)=¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
訂正。
(誤) ここで、¬(x ∈A ∧ x∈B)={ x | ¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
(正) ここで、¬(x ∈A ∧ x∈B)=¬(x ∈A) ∨ ¬(x∈B)を証明すれば、
>>59
いや,手持ちの本が読めれば十分なので(今はその部分は結論ありきで読み飛ばしている)追求しようという意図はない
ていうか,たぶん,そうやって読まないといけない(そうじゃないと進めない)
でも,ド・モルガンは定理じゃなくて公理じゃないのかなって「感じる」んですよ
これは私だけの気のせい?多分気のせいなんだろうな‥ごめんね
いや,手持ちの本が読めれば十分なので(今はその部分は結論ありきで読み飛ばしている)追求しようという意図はない
ていうか,たぶん,そうやって読まないといけない(そうじゃないと進めない)
でも,ド・モルガンは定理じゃなくて公理じゃないのかなって「感じる」んですよ
これは私だけの気のせい?多分気のせいなんだろうな‥ごめんね
66片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 20:47:54.26ID:WTRjQogU 集合の極限というと、
S=f(X_0)∪f(X_1)∪...∪f(X_n)∪...
みたいな感じか?
自明ではないが、つまらないな。
S=f(X_0)∪f(X_1)∪...∪f(X_n)∪...
みたいな感じか?
自明ではないが、つまらないな。
2017/07/22(土) 21:04:17.39ID:Xt0MBnGT
>>58は健常者の様な発言なのに、
スレをツイッターと勘違いしているかのようなクソレス連投が残念だ
スレをツイッターと勘違いしているかのようなクソレス連投が残念だ
68片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 21:09:55.19ID:WTRjQogU 君の公理系では公理かも知れない。ただZFCで証明されるものであるから、定理と言った方がいい。
>>66
https://www.amazon.co.jp/dp/4320014731
最初の方だが,すでに∞前提
演習
(1)(∪_{n=1}^∞ An)∩A = ∪_{n=1}^∞(An ∩A)
(2)(∩_{n=1}^∞ An)∪A = ∩_{n=1}^∞(An ∪A)
どちらか一方だけ証明できたら,残りはドモルガン採用ですっとばしているが,ドモルガンが∞にも使えるか迷いがある
https://www.amazon.co.jp/dp/4320014731
最初の方だが,すでに∞前提
演習
(1)(∪_{n=1}^∞ An)∩A = ∪_{n=1}^∞(An ∩A)
(2)(∩_{n=1}^∞ An)∪A = ∩_{n=1}^∞(An ∪A)
どちらか一方だけ証明できたら,残りはドモルガン採用ですっとばしているが,ドモルガンが∞にも使えるか迷いがある
70片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 21:21:12.59ID:WTRjQogU 無限大について、濃度が定まっている。集合が一意に確定する。
71片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 21:25:41.26ID:WTRjQogU 集合であることの定義にまでさかのぼって、well-definedであることを確認すればいい。
72片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 21:26:51.50ID:WTRjQogU あとは数学的帰納法だ。
73片山博文MZ ◆T6xkBnTXz7B0
2017/07/22(土) 21:36:21.21ID:WTRjQogU 整数の無限大は整数ではない。
整数の全体集合は無限の濃度だが、集合としてwell-definedである。
このように、極限については個別に存在を確認する必要がある。
整数の全体集合は無限の濃度だが、集合としてwell-definedである。
このように、極限については個別に存在を確認する必要がある。
うん,確かにこの場合は自然数の無限だから可算個だね,ちょっと今までの私の話とは事情が違う,なかなかいい例が思い浮かばないね‥
2017/07/22(土) 22:41:47.08ID:GxGWP07y
なにこの自演連投
2017/07/22(土) 23:51:19.55ID:QqZjuHKP
2017/07/23(日) 00:08:17.96ID:senoENRy
そろそろC/C++に関係ない話だから適切なスレに移動してもらえないか?
2017/07/23(日) 00:15:19.26ID:saJI7pNE
災害だと思って諦めろ
2017/07/23(日) 04:53:37.10ID:48axhpAl
コイツ等は
何が楽しくて生きているんだろうか
何が楽しくて生きているんだろうか
2017/07/23(日) 08:32:31.28ID:uweeyuEb
しかし間違いだらけで、見てるだけで苛ついてくるな
2017/07/23(日) 11:35:11.86ID:3jIQW2qu
糞ハンネ
2017/07/24(月) 18:08:53.79ID:UuUAOyUA
>>80
間違いだと思う点について具体的に
間違いだと思う点について具体的に
2017/07/24(月) 18:34:08.77ID:3yF9COr6
2017/07/24(月) 18:40:29.85ID:UuUAOyUA
>>83
では、糞コテQZが提起している「ド・モルガンこそ公理」については、どう思う?
では、糞コテQZが提起している「ド・モルガンこそ公理」については、どう思う?
2017/07/24(月) 18:44:31.66ID:3yF9COr6
>>84
それも間違ってるよ
それも間違ってるよ
2017/07/24(月) 18:49:15.52ID:UuUAOyUA
87片山博文MZ ◆T6xkBnTXz7B0
2017/07/24(月) 19:20:26.89ID:iUqnpKPO 天才の時間を無駄にするなよ。
2017/07/24(月) 19:22:57.71ID:UuUAOyUA
>>87
初等整数論だけが数学ではない、中国剰余定理でとまっていては惜しい
初等整数論だけが数学ではない、中国剰余定理でとまっていては惜しい
89はちみつ餃子 ◆8X2XSCHEME
2017/07/24(月) 22:07:17.47ID:Gxl+AYGO2017/07/24(月) 22:49:36.92ID:9ObWd1Q9
論理回路とかでまともな無限元のブール代数教えるとこなら、
交換、結合、単位元、補元の公理から証明する手順教える。
交換、結合、単位元、補元の公理から証明する手順教える。
2017/07/24(月) 22:51:50.82ID:mYhfbnvO
と、荒らし共が申しております
92デフォルトの名無しさん
2017/07/25(火) 10:10:52.25ID:OkhRIGg6 operator[](int n) をその定義されてるクラス自身で呼び出すにはどうしたらいいんですか?
2017/07/25(火) 10:41:29.07ID:QLVMoI/q
(*this)[n]
94デフォルトの名無しさん
2017/07/25(火) 10:49:24.51ID:OkhRIGg6 サンクスです
2017/07/25(火) 12:05:17.11ID:M07WjxQ9
2017/07/25(火) 12:22:00.82ID:s+Qz9lcg
あとから劣後した提案できるって尋常じゃないね
2017/07/25(火) 18:10:25.51ID:0HSMBoAM
operator()();
俺はこの言語を勉強するのをやめた
俺はこの言語を勉強するのをやめた
2017/07/25(火) 20:05:19.85ID:M07WjxQ9
100片山博文MZ ◆T6xkBnTXz7B0
2017/07/25(火) 20:35:51.44ID:hJo+OnkE 尋常小學校
101デフォルトの名無しさん
2017/07/26(水) 03:01:12.72ID:73NCM6AX int main() {
vector<int> v;
v.reserve(10000);
v.push_back(0);
cout << v.capacity() << endl;
vector<int> (v).swap(v);
cout << v.capacity() << endl;
}
(v).swap(v); の文頭のvに付いてる()は何の意味があるんでしょうか?
vector<int> v;
v.reserve(10000);
v.push_back(0);
cout << v.capacity() << endl;
vector<int> (v).swap(v);
cout << v.capacity() << endl;
}
(v).swap(v); の文頭のvに付いてる()は何の意味があるんでしょうか?
102デフォルトの名無しさん
2017/07/26(水) 03:21:52.99ID:qHYVpVTl バルタン星人。
103デフォルトの名無しさん
2017/07/26(水) 04:24:25.95ID:cw7jpAOD >>101
vector<int> (v)
までで一時オブジェクトをコピーコンストラクトしてるんじゃ?
で、.swap(v) で中身を入れ替えて、コンパクションするっていうサンプルに見える。
未確認で書いてるので、間違えてたらごめん。
vector<int> (v)
までで一時オブジェクトをコピーコンストラクトしてるんじゃ?
で、.swap(v) で中身を入れ替えて、コンパクションするっていうサンプルに見える。
未確認で書いてるので、間違えてたらごめん。
104デフォルトの名無しさん
2017/07/26(水) 06:18:35.77ID:qHYVpVTl ・V ・
(v).swap(v) フォッフォッフォッ
(v).swap(v) フォッフォッフォッ
105デフォルトの名無しさん
2017/07/26(水) 15:54:35.58ID:73NCM6AX >>103
何とか理解できました。ありがとうございます。
何とか理解できました。ありがとうございます。
106片山博文MZ ◆T6xkBnTXz7B0
2017/07/26(水) 20:46:35.22ID:bC5SPfn2 vector<int> (v).swap(v);
>と( の間が離れてるのが、分かりにくい読みづらい、意地悪な点だな。
>と( の間が離れてるのが、分かりにくい読みづらい、意地悪な点だな。
108デフォルトの名無しさん
2017/07/26(水) 22:56:52.57ID:vCDZhGQY int OTL=3;
109デフォルトの名無しさん
2017/07/27(木) 01:04:28.47ID:q1rhXXen > vector<int> (v).swap(v);
C++は糞だな。
C++は糞だな。
110デフォルトの名無しさん
2017/07/27(木) 06:22:38.44ID:tCxrViSf 同意
111デフォルトの名無しさん
2017/07/27(木) 06:23:16.82ID:tCxrViSf C++というより、ライブラリだが
112デフォルトの名無しさん
2017/07/27(木) 06:55:32.44ID:SUaLVh4Q >>103
そんな変な文法を考えたヤツ誰だよ?
そんな変な文法を考えたヤツ誰だよ?
113デフォルトの名無しさん
2017/07/27(木) 07:34:51.23ID:mWPL0ri7 その書き方がわかりづらいからC++11でvectorにshrink_to_fit()が追加されてるわけで
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#755
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#755
114デフォルトの名無しさん
2017/07/27(木) 17:10:11.12ID:nKOoAa+D そんで、mapの場合はどうするんでつか?
115デフォルトの名無しさん
2017/07/27(木) 19:10:45.43ID:/VCkXAgy mapでシュリンクが必要なケースあるの?
116デフォルトの名無しさん
2017/07/27(木) 19:41:35.37ID:nKOoAa+D 無いの?
117デフォルトの名無しさん
2017/07/27(木) 22:33:18.49ID:wZCn8yX+ 無いと思ったから、あるの?って聞いたんだけど。
118デフォルトの名無しさん
2017/07/27(木) 22:33:51.77ID:wZCn8yX+ そもそもreserveできないし。
119デフォルトの名無しさん
2017/07/27(木) 23:08:59.52ID:8uP2v97Y120デフォルトの名無しさん
2017/07/27(木) 23:34:10.64ID:5IXklzdW 今流行りのこれか
これからわざとこういうやり取りして荒らすやつ増えるんだろうな
http://www.honmotakeshi.com/archives/51758414.html
委員「あなたがやっていることの根拠を示してください」
前川「俺のやることに疑問を持つなら疑問を持つ根拠を示せ」
委員「政策を実現するにはそれに基づく根拠が欲しいと言ってるんです」
前川「それだけの疑問を呈するなら疑問の根拠を示せ」
これからわざとこういうやり取りして荒らすやつ増えるんだろうな
http://www.honmotakeshi.com/archives/51758414.html
委員「あなたがやっていることの根拠を示してください」
前川「俺のやることに疑問を持つなら疑問を持つ根拠を示せ」
委員「政策を実現するにはそれに基づく根拠が欲しいと言ってるんです」
前川「それだけの疑問を呈するなら疑問の根拠を示せ」
121デフォルトの名無しさん
2017/07/27(木) 23:43:42.41ID:KBJFSsyK122デフォルトの名無しさん
2017/07/28(金) 08:07:33.12ID:VRFX85+t123デフォルトの名無しさん
2017/07/28(金) 08:22:36.87ID:aSs6rxS/ コミュニケーション出来てない
明らかに触ってはダメな人でしょ
明らかに触ってはダメな人でしょ
124デフォルトの名無しさん
2017/07/28(金) 08:34:52.56ID:oIFva6g9 わざとじゃねーの?
125デフォルトの名無しさん
2017/07/28(金) 12:38:35.23ID:WViVOgsq どっちも説明する気がないから
平行線
平行線
126デフォルトの名無しさん
2017/07/28(金) 12:39:07.07ID:WvgdGCet 煽り専用の人工無能でしょ
127デフォルトの名無しさん
2017/07/28(金) 14:08:59.02ID:IiZPJKRx バイナリファイルについて質問します
変数xyzがあったときxyzをまとめてバイナリファイルにすることはできないんでしょうか?
例えば
#include<stdio.h>
FILE *fp;
int main(void) {
fp=fopen("test2.dat", "wb");
int x = 10;
double y = 15.55;
char z[] = { "abcde" };
fwrite(&x, sizeof(x),1, fp);
fclose(fp);
return 0;
}
これでxのバイナリファイルはできると思いますがyzにもそれぞれ専用のファイルポインタを用意して
それぞれ個別に書き出すことしかできないんでしょうか?
変数xyzがあったときxyzをまとめてバイナリファイルにすることはできないんでしょうか?
例えば
#include<stdio.h>
FILE *fp;
int main(void) {
fp=fopen("test2.dat", "wb");
int x = 10;
double y = 15.55;
char z[] = { "abcde" };
fwrite(&x, sizeof(x),1, fp);
fclose(fp);
return 0;
}
これでxのバイナリファイルはできると思いますがyzにもそれぞれ専用のファイルポインタを用意して
それぞれ個別に書き出すことしかできないんでしょうか?
128デフォルトの名無しさん
2017/07/28(金) 14:46:45.90ID:wtp1eGJk fclose()する前に同じfpに続けてfwrite()すれば、同じファイルに書き出されますよ
129デフォルトの名無しさん
2017/07/28(金) 15:02:04.83ID:IiZPJKRx ありがとうございます。
いっぺんに書くんじゃなくて行を増やして書けばよかったんですね(´エ`)
いっぺんに書くんじゃなくて行を増やして書けばよかったんですね(´エ`)
130デフォルトの名無しさん
2017/07/28(金) 21:22:15.86ID:HyK7cEQc > char z[] = { "abcde" };
こんな初期化初めて見た
奥が深いな
こんな初期化初めて見た
奥が深いな
131デフォルトの名無しさん
2017/07/29(土) 01:30:09.73ID:wXH6c2tF mapで、あるvalueを持つpairだけを別のmapに移す時はどうやればよいでしょうか?
例えば
unordered_map<int, int> map1{
{0, -10},
{10, -1},
{2, 5},
}
があってvalueが負のもの({0, -1.}と{10, -1})をmap1から削除して
map2へ移す、みたいな場合です。
例えば
unordered_map<int, int> map1{
{0, -10},
{10, -1},
{2, 5},
}
があってvalueが負のもの({0, -1.}と{10, -1})をmap1から削除して
map2へ移す、みたいな場合です。
132デフォルトの名無しさん
2017/07/29(土) 02:13:30.18ID:NWxouBfw C++14まではmapの要素を直接付け替えることはできないのでそのまま
1 ループやalgorithmで該当する要素を見つける
2 その要素のキーと値でmap2に新しい要素を追加
3 古い要素をmap1から削除
4 該当する要素がなくなるまで1-3を繰り返す
1 ループやalgorithmで該当する要素を見つける
2 その要素のキーと値でmap2に新しい要素を追加
3 古い要素をmap1から削除
4 該当する要素がなくなるまで1-3を繰り返す
133はちみつ餃子 ◆8X2XSCHEME
2017/07/29(土) 08:10:20.47ID:HavpCAcr >>131
std::remove_copy_if を使うのが一番簡単な方法だと思う。
std::remove_copy_if(std::begin(map1), std::begin(map2), std::inserter(map2, std::end(map2)), [](decltype(map2)::value_type x) { return x.second < 0; });
みたいな感じ。
std::remove_copy_if を使うのが一番簡単な方法だと思う。
std::remove_copy_if(std::begin(map1), std::begin(map2), std::inserter(map2, std::end(map2)), [](decltype(map2)::value_type x) { return x.second < 0; });
みたいな感じ。
134デフォルトの名無しさん
2017/07/29(土) 08:18:43.60ID:MwwfsD4U C++のSTLってこういうの好きだけど
ベタに書いた方が絶対楽だよな・・
ベタに書いた方が絶対楽だよな・・
135デフォルトの名無しさん
2017/07/29(土) 08:21:23.24ID:zJVnUUbX あとから見てこれなにやってるんだっけ?
ってなりそうで怖い
ってなりそうで怖い
136はちみつ餃子 ◆8X2XSCHEME
2017/07/29(土) 08:24:46.31ID:HavpCAcr >>134-135
こういう場合に for で回した方がいいというタイプの人は go に移行した方が幸せになれると思う。
こういう場合に for で回した方がいいというタイプの人は go に移行した方が幸せになれると思う。
137デフォルトの名無しさん
2017/07/29(土) 08:27:01.28ID:N+YJafLA forで回した方が良い
138デフォルトの名無しさん
2017/07/29(土) 08:30:04.61ID:MwwfsD4U あとエラるもんなら
とんでもない量の
コンパイルエラー吐くんだよな
もうアホかと
とんでもない量の
コンパイルエラー吐くんだよな
もうアホかと
139デフォルトの名無しさん
2017/07/29(土) 08:32:03.69ID:wXH6c2tF >>132
ありがとうございます。
http://ideone.com/l4I4Kt
こういう感じでループ回しているときに削除するとうまく行かないので聞いてみました。
イテレータでもうまくいかなくて。
>>133
algorithm使うんですね。こういう書き方知らなかったです。
ありがとうございます。
http://ideone.com/l4I4Kt
こういう感じでループ回しているときに削除するとうまく行かないので聞いてみました。
イテレータでもうまくいかなくて。
>>133
algorithm使うんですね。こういう書き方知らなかったです。
140デフォルトの名無しさん
2017/07/29(土) 09:29:15.29ID:USfv5Coy141はちみつ餃子 ◆8X2XSCHEME
2017/07/29(土) 09:35:15.24ID:HavpCAcr せやな。
名前重要。
名前重要。
142デフォルトの名無しさん
2017/07/29(土) 09:46:53.19ID:tkUDhhFx143デフォルトの名無しさん
2017/07/29(土) 10:19:10.90ID:zJVnUUbX >>140
分かりにくいか?
for(auto pair: map1){
if(pair.second < 0){
map2.insert(std::pair<int,int>(pair.first, pair.second);
}
}
for(auto pair: map2){
map1.erase(pair.first);
}
分かりにくいか?
for(auto pair: map1){
if(pair.second < 0){
map2.insert(std::pair<int,int>(pair.first, pair.second);
}
}
for(auto pair: map2){
map1.erase(pair.first);
}
144デフォルトの名無しさん
2017/07/29(土) 11:11:01.24ID:cYfk9kB4 お題改変野郎おつ
145デフォルトの名無しさん
2017/07/29(土) 11:14:07.65ID:zJVnUUbX146デフォルトの名無しさん
2017/07/29(土) 11:15:51.26ID:bre1+bmg147デフォルトの名無しさん
2017/07/29(土) 11:17:44.82ID:cYfk9kB4 >>145
>for(auto pair: map2){
>for(auto pair: map2){
148デフォルトの名無しさん
2017/07/29(土) 11:19:40.37ID:bre1+bmg てかpairなんて変数名使うなよ
誰か頭おかしいやつがusing namespace stdしたらどうすんだよ
誰か頭おかしいやつがusing namespace stdしたらどうすんだよ
149デフォルトの名無しさん
2017/07/29(土) 11:21:58.56ID:bre1+bmg てか細々とひどいね
こんな短いコードでよくもまぁ無能をここまで晒せるなと思う
こんな短いコードでよくもまぁ無能をここまで晒せるなと思う
150デフォルトの名無しさん
2017/07/29(土) 11:23:44.04ID:zJVnUUbX151デフォルトの名無しさん
2017/07/29(土) 11:26:00.62ID:zJVnUUbX152デフォルトの名無しさん
2017/07/29(土) 11:29:49.09ID:USfv5Coy153デフォルトの名無しさん
2017/07/29(土) 11:57:02.87ID:ODSH1Ehs ことごとく的はずれな指摘で笑たわ
154デフォルトの名無しさん
2017/07/29(土) 12:12:55.39ID:cYfk9kB4 >>150
お前アルゴリズムとか論理に弱いだろw
お前アルゴリズムとか論理に弱いだろw
155デフォルトの名無しさん
2017/07/29(土) 12:15:08.54ID:14mINgXT プログラム板ってみんなこんな感じなの?
とりあえずバカにする
みたいな
とりあえずバカにする
みたいな
156デフォルトの名無しさん
2017/07/29(土) 12:16:28.94ID:qNmrQnXF せやで
157デフォルトの名無しさん
2017/07/29(土) 13:01:38.77ID:MwwfsD4U158デフォルトの名無しさん
2017/07/29(土) 13:20:13.10ID:FYOlqRfm >>157
わけわかんないオレオレコードより、テスト済みの標準ライブラリ関数のほうが信頼できるから
わけわかんないオレオレコードより、テスト済みの標準ライブラリ関数のほうが信頼できるから
159デフォルトの名無しさん
2017/07/29(土) 13:24:20.64ID:14mINgXT 安易にライブラリを使うから、パフォーマンスがどんどん悪くなるんだな
160デフォルトの名無しさん
2017/07/29(土) 13:47:21.71ID:E5EEKRTu >>155
自分の知識目一杯使って的はずれなマウンティングしてる奴がいるだけ w
自分の知識目一杯使って的はずれなマウンティングしてる奴がいるだけ w
161デフォルトの名無しさん
2017/07/29(土) 15:25:53.36ID:wF9WnZrE あと、自分がコメントできそうな話題になるとここぞとばかりに知識を披露しようとして、
主題からずれたことを言い出したり、
さらにそれに間違いがあって余計なツッコミや攻撃的コメントを呼び込むのも
よく見る風景。
主題からずれたことを言い出したり、
さらにそれに間違いがあって余計なツッコミや攻撃的コメントを呼び込むのも
よく見る風景。
162デフォルトの名無しさん
2017/07/29(土) 15:47:58.67ID:0zBFZ9bK さほど広い範囲を読んでるわけじゃないけど、
C++関連は特に殺伐としてる感じはあるな。
C++関連は特に殺伐としてる感じはあるな。
163デフォルトの名無しさん
2017/07/29(土) 15:56:27.65ID:gp3BUyJn >>160 ←こういうのもマウンティングだよな。
164デフォルトの名無しさん
2017/07/29(土) 16:15:28.13ID:mj0H/MXI >>159
まずは意図が伝わるようにと言う意味でシンプルに書くことが重要。
標準ライブラリ使用は最低限のマナー。
チーム開発してると、上記を踏まえずオレオレ判断でパフォーマンスガー言っている人が、一番迷惑なんだよね。
まずは意図が伝わるようにと言う意味でシンプルに書くことが重要。
標準ライブラリ使用は最低限のマナー。
チーム開発してると、上記を踏まえずオレオレ判断でパフォーマンスガー言っている人が、一番迷惑なんだよね。
165デフォルトの名無しさん
2017/07/29(土) 16:53:05.23ID:V9CC1YIs 仕事だとメモリ効率や実効速度より開発効率が優先されるからな
166デフォルトの名無しさん
2017/07/29(土) 16:56:37.35ID:USfv5Coy パフォーマンスどうこうで、標準ライブラリ使わなくても許されるのは、mkl開発チームとか、eigenのコミッターレベル
167デフォルトの名無しさん
2017/07/29(土) 17:01:43.15ID:E0esoNX5168デフォルトの名無しさん
2017/07/29(土) 17:07:45.04ID:zJVnUUbX >>163
鏡見た方がいいと思うよ w
鏡見た方がいいと思うよ w
169デフォルトの名無しさん
2017/07/29(土) 17:18:24.12ID:WkR4K9lF170デフォルトの名無しさん
2017/07/29(土) 17:19:42.35ID:mj0H/MXI171デフォルトの名無しさん
2017/07/29(土) 17:20:19.90ID:mj0H/MXI てか、パフォーマンス関係ねー
172デフォルトの名無しさん
2017/07/29(土) 17:24:23.71ID:E0esoNX5173デフォルトの名無しさん
2017/07/29(土) 17:26:24.48ID:mj0H/MXI174デフォルトの名無しさん
2017/07/29(土) 17:30:02.48ID:mj0H/MXI ちょっとテンパったけど、そのレベルなら正直どっちでも構わないな。
コメントがあれば。
コメントがあれば。
175デフォルトの名無しさん
2017/07/29(土) 17:50:22.46ID:E0esoNX5176デフォルトの名無しさん
2017/07/29(土) 17:53:27.93ID:14mINgXT177デフォルトの名無しさん
2017/07/29(土) 21:53:58.73ID:JdwUdvlQ178はちみつ餃子 ◆8X2XSCHEME
2017/07/29(土) 23:46:27.56ID:HavpCAcr 個人的には BENCODE がなかなかいいんじゃないかと思ってる。
179デフォルトの名無しさん
2017/07/30(日) 12:35:48.46ID:GR0hOB2I180デフォルトの名無しさん
2017/07/30(日) 17:25:43.33ID:w5RmXCUD enum EMFType
{
MF_INT, // 符号付き整数
};
// いろいろなデータを1つの関数で表示します
void MultiFunc(EMFType type, unsigned int data)
{
switch(type)
{
case MF_INT : cout << (int)data << endl; break;
}
}
int main()
{
int a = -10;
MultiFunc(MF_INT , a);
return 0;
}
実行結果
-10
unsigned int にマイナスの値を渡してるんですが、そのまま出力されます。
これが仕様だとすると、パラメーターにunsigned int を指定する意味はなんなんでしょうか?
{
MF_INT, // 符号付き整数
};
// いろいろなデータを1つの関数で表示します
void MultiFunc(EMFType type, unsigned int data)
{
switch(type)
{
case MF_INT : cout << (int)data << endl; break;
}
}
int main()
{
int a = -10;
MultiFunc(MF_INT , a);
return 0;
}
実行結果
-10
unsigned int にマイナスの値を渡してるんですが、そのまま出力されます。
これが仕様だとすると、パラメーターにunsigned int を指定する意味はなんなんでしょうか?
182デフォルトの名無しさん
2017/07/30(日) 18:49:49.76ID:xziOu8cb >>181
なんでcoutでintにキャストしてんの
なんでcoutでintにキャストしてんの
184デフォルトの名無しさん
2017/07/30(日) 18:57:01.02ID:wjBL4Xoh185デフォルトの名無しさん
2017/07/30(日) 20:43:43.49ID:w5RmXCUD >>181
ありがとうございます。コンバイラかバージョンの問題ですかね。
>>182
http://www7b.biglobe.ne.jp/~robe/cpphtml/index.html
ここで勉強してたら出てきたんですが、完全には書いてること理解できてないんで何でかはわかりません。
ありがとうございます。コンバイラかバージョンの問題ですかね。
>>182
http://www7b.biglobe.ne.jp/~robe/cpphtml/index.html
ここで勉強してたら出てきたんですが、完全には書いてること理解できてないんで何でかはわかりません。
186デフォルトの名無しさん
2017/07/30(日) 20:54:24.26ID:1HGPNMYb >>180
cout時にintにcastしているからでは?
cout時にintにcastしているからでは?
187デフォルトの名無しさん
2017/07/30(日) 21:21:54.63ID:wjBL4Xoh188デフォルトの名無しさん
2017/07/30(日) 21:40:38.31ID:K4rJr1Oo >なぜ (int) のキャストをしているのかは読み取れないが
ふむふむ、これがイケヌマと言う奴だな
ふむふむ、これがイケヌマと言う奴だな
189デフォルトの名無しさん
2017/07/30(日) 21:42:16.93ID:IhAKIxVt オマエ読み取れたの?
190デフォルトの名無しさん
2017/07/30(日) 21:46:15.66ID:K4rJr1Oo これが読み取れない者はC/C++より国語の勉強をした方がよいのではないか
191デフォルトの名無しさん
2017/07/30(日) 21:49:30.37ID:9ZftmVJd 業務ではよくあるよ。
バグか仕様か分らないっての。書いた本人は既にいなくて誰も答えを知らない。
バグか仕様か分らないっての。書いた本人は既にいなくて誰も答えを知らない。
192デフォルトの名無しさん
2017/07/30(日) 22:21:43.69ID:pLyoXQEm どこの業務だよ。仕様残せよ
193片山博文MZ ◆T6xkBnTXz7B0
2017/07/30(日) 22:28:24.05ID:aW4ocSFO 型消し、type eraserだから、データ構造に意味が無ければ、悪い設計だろう。
194デフォルトの名無しさん
2017/07/30(日) 22:31:00.66ID:ynobldaf195デフォルトの名無しさん
2017/07/30(日) 22:31:49.27ID:K4rJr1Oo >type eraser
まさか、type erasureのつもりだった!?
まさか、type erasureのつもりだった!?
197デフォルトの名無しさん
2017/07/30(日) 22:38:07.55ID:K4rJr1Oo >>194
パラメーターの型は適当に決めたもので、EMFTypeで指定されたint型で取り出すのが目的だからだろう
「いろいろなデータを1つの関数で表示します」と書かれているのだから
イメージは↓
https://wandbox.org/permlink/WhWaxSM5nHZdAj9n
パラメーターの型は適当に決めたもので、EMFTypeで指定されたint型で取り出すのが目的だからだろう
「いろいろなデータを1つの関数で表示します」と書かれているのだから
イメージは↓
https://wandbox.org/permlink/WhWaxSM5nHZdAj9n
198片山博文MZ ◆T6xkBnTXz7B0
2017/07/30(日) 22:42:59.84ID:aW4ocSFO そのインターフェース、なんか意味があるの?
199デフォルトの名無しさん
2017/07/30(日) 22:49:59.18ID:hW0bjdhb type erasureは意味違うけどね
200デフォルトの名無しさん
2017/07/30(日) 23:12:02.27ID:K4rJr1Oo これはきっとロベールさんが知恵を絞って考えた、徐々に発展していく例題だったに違いない
と思って調べたら単なる型変換の説明だった
と思って調べたら単なる型変換の説明だった
201デフォルトの名無しさん
2017/07/30(日) 23:35:50.02ID:w5RmXCUD202デフォルトの名無しさん
2017/07/31(月) 00:05:24.36ID:rlOfWFsH int ⇔ unsigned intだからそれ程でもないけど
たかが型変換と思って単純そうに見えて実は深い
たかが型変換と思って単純そうに見えて実は深い
203デフォルトの名無しさん
2017/07/31(月) 04:51:20.26ID:eXoHYgix もしかしてunsigned int a = -10が10だと思ってるじゃ
204デフォルトの名無しさん
2017/07/31(月) 07:41:44.42ID:2pZH8HVB >>184
ごめんアンカミスだ
ごめんアンカミスだ
205デフォルトの名無しさん
2017/07/31(月) 08:13:27.51ID:QJrBCtHy unsigned intとintの変換って戻る保証あったっけ?
教えてエロい人
教えてエロい人
206デフォルトの名無しさん
2017/07/31(月) 09:37:11.53ID:8MdXXwK/ ない
207デフォルトの名無しさん
2017/07/31(月) 10:27:16.23ID:b0IxVlKH そうなの?
補数表現が違うと戻らなくなるんだっけ?
補数表現が違うと戻らなくなるんだっけ?
208デフォルトの名無しさん
2017/07/31(月) 12:46:28.35ID:oDbItPw6 いつもの
・現実にはダメな処理系はない
けど
・仕様では保証されない
って奴じゃね?
・現実にはダメな処理系はない
けど
・仕様では保証されない
って奴じゃね?
209デフォルトの名無しさん
2017/07/31(月) 17:41:18.97ID:ULiYNE/a この速さなら言える
unsigned intが分からない
少なくともunsignedの-10が10じゃないことは分かった
unsigned intが分からない
少なくともunsignedの-10が10じゃないことは分かった
210デフォルトの名無しさん
2017/07/31(月) 17:52:47.90ID:4+hbusvk 俺もunsignedに負数を代入した場合
どーなるのかわかってなかったわ
つーか、そんな処理入れる機会なくね?
わざわざバグったコード書いて
どうなるんですかって聞いているようなもん
どーなるのかわかってなかったわ
つーか、そんな処理入れる機会なくね?
わざわざバグったコード書いて
どうなるんですかって聞いているようなもん
211片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 18:12:00.47ID:tXq0mJzu intが32ビットの整数と仮定すると、
-1==0xFFFFFFFF。
これに1を足すと、オーバーフローして
0==0x00000000
となる。
-2は-1==0xFFFFFFFFよりも1だけ小さいので0xFFFFFFFEだ。
-1==0xFFFFFFFF。
これに1を足すと、オーバーフローして
0==0x00000000
となる。
-2は-1==0xFFFFFFFFよりも1だけ小さいので0xFFFFFFFEだ。
212デフォルトの名無しさん
2017/07/31(月) 18:19:04.62ID:RCGkVO1K 処理系依存な内容とそうじゃない内容はちゃんと区別しよう
213デフォルトの名無しさん
2017/07/31(月) 18:23:58.10ID:2pZH8HVB >>209,210
仮にこの範囲の整数を扱える型(X型)があったとすると
-4 -3 -2 -1 0 1 2 3 4
unsigned X型はこの範囲を扱える
0 1 2 3 4 5 6 7 8
X型の-1は-1
unsigned X型の-1は8になる
同じ数だけ(この場合9つ)表現できるのは変わらず
unsignedは最小値が0になる
仮にこの範囲の整数を扱える型(X型)があったとすると
-4 -3 -2 -1 0 1 2 3 4
unsigned X型はこの範囲を扱える
0 1 2 3 4 5 6 7 8
X型の-1は-1
unsigned X型の-1は8になる
同じ数だけ(この場合9つ)表現できるのは変わらず
unsignedは最小値が0になる
214片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 19:07:02.18ID:tXq0mJzu 符号つき(signed)の値の場合、一番上のビット(最上位ビット)を符号として扱う。そういう決まりになっている。
例えば、0x80000000は一番小さい符号つき32ビット整数になり、0x7FFFFFFFは符号つき32ビット整数で一番大きな数になる。
例えば、0x80000000は一番小さい符号つき32ビット整数になり、0x7FFFFFFFは符号つき32ビット整数で一番大きな数になる。
215デフォルトの名無しさん
2017/07/31(月) 19:16:13.46ID:ULiYNE/a こんなに一生懸命説明してくれてるのにわからない俺…
すんませんした
すんませんした
216デフォルトの名無しさん
2017/07/31(月) 19:18:53.66ID:aK6EDhQb217片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 19:18:53.77ID:tXq0mJzu -30は、-1==0xFFFFFFFFよりも29だけ小さい数だ。29==16+8+4+1==0x1Dだから、-30==0xFFFFFFFF - 0x1D==0xFFFFFFE2となる。
218デフォルトの名無しさん
2017/07/31(月) 19:19:50.58ID:9Hgupd7z 意外とハマるのはサイズが拡張される場合で
char ch1 = 0xFF;
unsigned char ch2 = 0xFF;
unsigned int int1 = ch1;
unsigned int int2 = ch2;
int1 と int2 は違った値になりよるよ
VCの処理系依存かもしれんが
char ch1 = 0xFF;
unsigned char ch2 = 0xFF;
unsigned int int1 = ch1;
unsigned int int2 = ch2;
int1 と int2 は違った値になりよるよ
VCの処理系依存かもしれんが
219デフォルトの名無しさん
2017/07/31(月) 19:21:38.34ID:aK6EDhQb 1の補数、2の補数、符号ビット+仮数
言語上はこれだけある
トラップ表現があったりもする
言語上はこれだけある
トラップ表現があったりもする
220片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 19:37:10.30ID:tXq0mJzu 自動車やバイクには走行メーターがついているだろう。走行メーターは0〜9の何桁でどのくらい走ったかを表す。
9999の次が0000になる場合、9999を-1、9998を-2、と考えるとメーターで足し算・引き算を考えることができる。各桁が0〜9になるから、メーターの場合は10進数表示になるがね、
コンピュータの場合は2進数や、16進数で考えることが多い。
9999の次が0000になる場合、9999を-1、9998を-2、と考えるとメーターで足し算・引き算を考えることができる。各桁が0〜9になるから、メーターの場合は10進数表示になるがね、
コンピュータの場合は2進数や、16進数で考えることが多い。
221片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 19:41:04.34ID:tXq0mJzu 2進数の場合は各桁が0か1になり、2で次の位に繰り上げ。16進数の場合は各桁が0〜9、A〜Fのいずれかになり、16で次の位に繰り上げ。
222デフォルトの名無しさん
2017/07/31(月) 19:49:09.33ID:aK6EDhQb いつまで機種依存ネタ続けるつもり?
223デフォルトの名無しさん
2017/07/31(月) 20:01:22.25ID:iTQXcHuD224デフォルトの名無しさん
2017/07/31(月) 20:05:38.00ID:9Hgupd7z だからさわるなって
226デフォルトの名無しさん
2017/07/31(月) 21:44:09.51ID:zfEccCnj auto i = -100;
auto u = static_cast<unsigned>(i);
int i2;
std::memcpy(&i2, &u, sizeof(int));
unsigned intを経由してintを取り出す方法はこれしか思いつかなかった
auto u = static_cast<unsigned>(i);
int i2;
std::memcpy(&i2, &u, sizeof(int));
unsigned intを経由してintを取り出す方法はこれしか思いつかなかった
227デフォルトの名無しさん
2017/07/31(月) 22:53:45.79ID:SkB3nQWo 触るも何も自演だから嵐が過ぎ去るのを黙って見てるしかないぞ
228片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 23:31:24.17ID:tXq0mJzu 仮想世界の住人たちが全て同一人物の自演に見える病気に名前を付けるとしたら、何にする?
229片山博文MZ ◆T6xkBnTXz7B0
2017/07/31(月) 23:37:22.96ID:tXq0mJzu 「思念体同一視妄想」と名付けよう。
230はちみつ餃子 ◆8X2XSCHEME
2017/08/01(火) 00:01:32.28ID:J7NYj7Ga 思念体が滅びることはない……
死ねんたいwww
死ねんたいwww
231デフォルトの名無しさん
2017/08/01(火) 02:44:00.93ID:LRNcLEwd なるほど・・さっぱりわからん
232片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 21:04:49.74ID:iBC54dHR わからない
わからん
若卵
らんらんるー
わからん
若卵
らんらんるー
233デフォルトの名無しさん
2017/08/01(火) 21:55:28.88ID:J7NYj7Ga わかんない → 和姦ない → 強姦ばかり
234片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:00:50.36ID:iBC54dHR だじゃれモードかよ
235片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:05:37.08ID:iBC54dHR 2進数を下の位から4桁ごと区切ると、簡単に16進数に直せるぞ。
2の4乗は16だから、2進数の4桁が16進数の1桁に相当する。
2の4乗は16だから、2進数の4桁が16進数の1桁に相当する。
236片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:12:21.56ID:iBC54dHR #include <stdio.h>
int main(void) {
int i;
printf("10進数と16進数\n");
for (i = 0; i < 30; ++i) {
printf("%d => 0x%x\n", i, i);
}
return 0;
}
int main(void) {
int i;
printf("10進数と16進数\n");
for (i = 0; i < 30; ++i) {
printf("%d => 0x%x\n", i, i);
}
return 0;
}
237片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:15:21.90ID:iBC54dHR C/C++では、2進数出力は少し難しい。ビット演算が必要になる。
238片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:20:52.25ID:iBC54dHR void print_binary(int n) {
int i;
for (i = sizeof(int) * 8 - 1; i >= 0; --i) {
if (n & (1 << i)) putchar('1');
else putchar('0');
}
}
int i;
for (i = sizeof(int) * 8 - 1; i >= 0; --i) {
if (n & (1 << i)) putchar('1');
else putchar('0');
}
}
239片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:55:18.84ID:Oo5iWDLT #include <stdio.h>
int main(void) {
int i;
printf("符号あり => 符号なし => 16進\n");
for (i = -10; i <= 10; ++i) {
printf("%d => %u => 0x%x\n");
}
return 0;
}
int main(void) {
int i;
printf("符号あり => 符号なし => 16進\n");
for (i = -10; i <= 10; ++i) {
printf("%d => %u => 0x%x\n");
}
return 0;
}
240片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 22:56:59.82ID:Oo5iWDLT >>239
訂正。
#include <stdio.h>
int main(void) {
int i;
printf("符号あり => 符号なし => 16進\n");
for (i = -10; i <= 10; ++i) {
printf("%d => %u => 0x%x\n", i, i, i); //訂正。
}
return 0;
}
訂正。
#include <stdio.h>
int main(void) {
int i;
printf("符号あり => 符号なし => 16進\n");
for (i = -10; i <= 10; ++i) {
printf("%d => %u => 0x%x\n", i, i, i); //訂正。
}
return 0;
}
241デフォルトの名無しさん
2017/08/01(火) 23:06:29.76ID:mGfRGHrE >>240
%u に int 渡してんじゃねーよ
%u に int 渡してんじゃねーよ
242片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 23:19:17.88ID:Oo5iWDLT243片山博文MZ ◆T6xkBnTXz7B0
2017/08/01(火) 23:26:14.17ID:Oo5iWDLT244デフォルトの名無しさん
2017/08/02(水) 00:27:59.29ID:AGgV01p7246デフォルトの名無しさん
2017/08/02(水) 17:58:47.10ID:denJnq0F ぞいってなー
247デフォルトの名無しさん
2017/08/02(水) 22:14:43.24ID:TeM237FQ class CManiac {
private: char* m_pc;
public:
virtual ~CManiac() {
cout<<"destr "<< this << " : " << &m_pc << endl;
delete[] m_pc;
}
CManiac() : m_pc(new char[1]) { cout<<"constr "<< this <<endl;}
void getAdrs(){ cout<< this <<" : "<< &m_pc << endl; }
};
int main() {
vector<CManiac> vecmaniac;
vecmaniac.resize(3);
vecmaniac[0].getAdrs();
vecmaniac[1].getAdrs();
vecmaniac[2].getAdrs();
return 0;
}
constr 0x22fe40
destr 0x22fe40 : 0x22fe44
0x3b1678 : 0x3b167c
0x3b1680 : 0x3b1684
0x3b1688 : 0x3b168c
destr 0x3b1678 : 0x3b167c
destr 0x3b1680 : 0x3b1684
destr 0x3b1688 : 0x3b168c
vectorに自作クラスのインスタンスを入れるとき、このコードだとm_pc;が指すアドレスが2重開放になるとかで
デフォルトコンストラクタとコピーコンストラクタとデストラクタの3つが必須だと書いてあったのですが、エラー無しで出力できます。
デストラクタのところで<<m_pc;と書いても、何故か文字化けしてしまうのでアドレスが分からないんですが
本来、resizeを使ってインスタンスを生成したら、m_pc(new char[1])で作った領域は3つとも同じになるということですか?
あと、最初に呼び出されている0x22fe40 は何のインスタンスなんですか?回答宜しくお願いします。
private: char* m_pc;
public:
virtual ~CManiac() {
cout<<"destr "<< this << " : " << &m_pc << endl;
delete[] m_pc;
}
CManiac() : m_pc(new char[1]) { cout<<"constr "<< this <<endl;}
void getAdrs(){ cout<< this <<" : "<< &m_pc << endl; }
};
int main() {
vector<CManiac> vecmaniac;
vecmaniac.resize(3);
vecmaniac[0].getAdrs();
vecmaniac[1].getAdrs();
vecmaniac[2].getAdrs();
return 0;
}
constr 0x22fe40
destr 0x22fe40 : 0x22fe44
0x3b1678 : 0x3b167c
0x3b1680 : 0x3b1684
0x3b1688 : 0x3b168c
destr 0x3b1678 : 0x3b167c
destr 0x3b1680 : 0x3b1684
destr 0x3b1688 : 0x3b168c
vectorに自作クラスのインスタンスを入れるとき、このコードだとm_pc;が指すアドレスが2重開放になるとかで
デフォルトコンストラクタとコピーコンストラクタとデストラクタの3つが必須だと書いてあったのですが、エラー無しで出力できます。
デストラクタのところで<<m_pc;と書いても、何故か文字化けしてしまうのでアドレスが分からないんですが
本来、resizeを使ってインスタンスを生成したら、m_pc(new char[1])で作った領域は3つとも同じになるということですか?
あと、最初に呼び出されている0x22fe40 は何のインスタンスなんですか?回答宜しくお願いします。
248片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:27:48.20ID:tJX9Zx+g new char[1]は、要素数1の動的配列へのポインターで、中身は初期化されていない。
249片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:33:06.29ID:tJX9Zx+g << m_pcと書くと、当然m_pcは、C文字列として解釈されるが、初期化されておらず、ヌル終端とは限らないので、
文字化けする。
文字化けする。
250片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:35:13.01ID:tJX9Zx+g 教訓。生ポインターは使うな。std::stringやstd::vectorなどを使え。
251片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:46:24.97ID:tJX9Zx+g resizeは、引数なしのコンストラクターでオブジェクトを作成して、それをvector内部にコピーする。
このコピーの際にコピーコンストラクターが使われる。コピーコンストラクターは記述されていないから、暗黙のものが使われる。
それはポインターの中身をコピーしていないから、問題がある。
このコピーの際にコピーコンストラクターが使われる。コピーコンストラクターは記述されていないから、暗黙のものが使われる。
それはポインターの中身をコピーしていないから、問題がある。
252片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:57:09.01ID:tJX9Zx+g よくわからなければ、
CManiac(const CManiac& cm)
{ ... }
というコピーコンストラクターを書き加えてみるとよい。
CManiac(const CManiac& cm)
{ ... }
というコピーコンストラクターを書き加えてみるとよい。
253片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 22:59:09.90ID:tJX9Zx+g 代入の
CManiac& operater=(const CManiac& cm)
{
...
return *this;
}
も追加。
CManiac& operater=(const CManiac& cm)
{
...
return *this;
}
も追加。
254デフォルトの名無しさん
2017/08/02(水) 23:05:54.19ID:qrhQzK+m unsigned intなどを使って何かいい事有るのか?普通にint使えばいいだろ?
255片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 23:06:30.72ID:tJX9Zx+g IDEのデバッグ機能を使えば、std::vector::resizeなどのソースコードも読めるよ。
257デフォルトの名無しさん
2017/08/02(水) 23:10:24.82ID:qU91jTb3 >new char[1]は、要素数1の動的配列へのポインター
んなこたーない
んなこたーない
258片山博文MZ ◆T6xkBnTXz7B0
2017/08/02(水) 23:11:05.31ID:tJX9Zx+g 符号ありよりも大きな範囲を扱える。ビット演算やビットフィールドで便利。
259デフォルトの名無しさん
2017/08/02(水) 23:44:31.73ID:qU91jTb3 この実行結果を見て>>251の回答が瞬時に出てくるのはひょっとして凄い奴なのではないか?
と一瞬でも思ってしまった自分が恥ずかしい
と一瞬でも思ってしまった自分が恥ずかしい
260デフォルトの名無しさん
2017/08/02(水) 23:59:09.86ID:qU91jTb3 ライブラリ仕様の変遷を理解した上で質問者に回答を合わせる
などという高度な対応がクソコテにできる筈も無かった
などという高度な対応がクソコテにできる筈も無かった
261デフォルトの名無しさん
2017/08/03(木) 00:21:51.89ID:1LfxTpLV >符号ありよりも大きな範囲を扱える
確かにそうだな
言語仕様の規格上は
確かにそうだな
言語仕様の規格上は
263片山博文MZ ◆T6xkBnTXz7B0
2017/08/03(木) 00:44:37.38ID:YO3k3fE8 >>262
あ、コピーコンストラクターは、C++03の方で、C++11なら、ムーブコンストラクターとムーブ代入が使えるから、少し動作が違うんだった。
あ、コピーコンストラクターは、C++03の方で、C++11なら、ムーブコンストラクターとムーブ代入が使えるから、少し動作が違うんだった。
264ねこまじ
2017/08/03(木) 00:45:34.22ID:t0J1S2SM Youtuberヒカルが月収を明らかに!!おはよう朝日です出演
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
誰でも参入可能だからおまえらもyoutubeに動画投稿したほうがいい
顔出したくないならラファエルみたいに仮面かぶればいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
ゲーム実況はニッチだから人気ユーチューバーのネタをパクればいい
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
誰でも参入可能だからおまえらもyoutubeに動画投稿したほうがいい
顔出したくないならラファエルみたいに仮面かぶればいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
ゲーム実況はニッチだから人気ユーチューバーのネタをパクればいい
265片山博文MZ ◆T6xkBnTXz7B0
2017/08/03(木) 00:48:11.43ID:YO3k3fE8 ってことは、C++11の場合は、
CManiac(CManiac&& cm)
{ ... }
と
CManiac& operater=(CManiac&& cm)
{
...
return *this;
}
を書くんだね。これで完璧。
CManiac(CManiac&& cm)
{ ... }
と
CManiac& operater=(CManiac&& cm)
{
...
return *this;
}
を書くんだね。これで完璧。
266デフォルトの名無しさん
2017/08/03(木) 00:48:42.44ID:cUZMqwjs >>257
違うの?
違うの?
267デフォルトの名無しさん
2017/08/03(木) 01:02:12.67ID:cUZMqwjs あ、動的配列じゃなくてヒープのアドレスとってるだけよということかな
268片山博文MZ ◆T6xkBnTXz7B0
2017/08/03(木) 01:02:16.06ID:YO3k3fE8 C++11のemplace_backを忘れてた。コピーせずに、vector内部で直接構築されるんだった。
269デフォルトの名無しさん
2017/08/03(木) 07:14:24.41ID:jHHnzd5n270デフォルトの名無しさん
2017/08/03(木) 13:14:53.27ID:vWCSRcUD271デフォルトの名無しさん
2017/08/03(木) 14:40:42.21ID:xqHGpC9q ふえぇぼうよー先生の本凄く読みずらいよ・・・
272デフォルトの名無しさん
2017/08/03(木) 16:53:01.55ID:2WeFShGG273デフォルトの名無しさん
2017/08/03(木) 16:58:53.44ID:2WeFShGG 何もしないってのは吐き出されるコードが不変て意味ね
個人的にはキャストするけど
個人的にはキャストするけど
274デフォルトの名無しさん
2017/08/03(木) 20:14:02.94ID:Wy5AX0em intが32bitな64bit環境下だとして
printfの可変長引数で32bit整数を64bitに自動拡張するときの
拡張のされ方が変わるんじゃね?
ただし%uによって32bit分しか見に行かないから無視してよいけど
コード不変とはならないんじゃね?
printfの可変長引数で32bit整数を64bitに自動拡張するときの
拡張のされ方が変わるんじゃね?
ただし%uによって32bit分しか見に行かないから無視してよいけど
コード不変とはならないんじゃね?
275デフォルトの名無しさん
2017/08/03(木) 20:21:13.08ID:D1Re6UdQ %z と %d の差ですかい?
276デフォルトの名無しさん
2017/08/03(木) 20:24:42.71ID:Wy5AX0em いや、64bitに自動拡張してスタックに積む際に
277デフォルトの名無しさん
2017/08/03(木) 20:28:36.06ID:D1Re6UdQ int が32bit なら 可変長引数部でスタックに詰むとき
暗黙で 64bit に自動拡張はやらんのじゃないの?
暗黙で 64bit に自動拡張はやらんのじゃないの?
278デフォルトの名無しさん
2017/08/03(木) 21:31:57.89ID:2WeFShGG やったら破綻する
279デフォルトの名無しさん
2017/08/03(木) 22:25:13.00ID:2WeFShGG 嘘ですサーセン
280デフォルトの名無しさん
2017/08/03(木) 22:54:52.47ID:84Bc5dj3 >>273
そんな保証はないよ
そんな保証はないよ
281デフォルトの名無しさん
2017/08/03(木) 23:29:16.77ID:2WeFShGG 保証は無いね
x64の場合でもキャストしようがしまいが0拡張になるけど
差が出るとしたらどんな場合?
x64の場合でもキャストしようがしまいが0拡張になるけど
差が出るとしたらどんな場合?
282デフォルトの名無しさん
2017/08/03(木) 23:48:26.53ID:Wy5AX0em 常に0拡張は信じがたい
負数の時おかしくなるだろ・・・
負数の時おかしくなるだろ・・・
283デフォルトの名無しさん
2017/08/03(木) 23:49:27.73ID:2WeFShGG intが32bitの処理系の話ね
32bitのintを64bitに符号拡張するのはダメでしょ
32bitのintを64bitに符号拡張するのはダメでしょ
284デフォルトの名無しさん
2017/08/04(金) 07:09:12.01ID:KzbqP8qx285デフォルトの名無しさん
2017/08/04(金) 08:30:27.75ID:oD3njs5y 64bit で引き出したうえで 32bit しか採用しないのか
32bit で引き出すだけなのか
後者は2個目いこう狂うわけ
32bit で引き出すだけなのか
後者は2個目いこう狂うわけ
286デフォルトの名無しさん
2017/08/04(金) 08:46:19.49ID:SS0ANIEQ 64bitに自動拡張してスタックって、x64はpush eaxしたら8バイトpushされんの?
287デフォルトの名無しさん
2017/08/04(金) 08:47:48.89ID:Q7buFUOM 8、16でも前者でしょ
288デフォルトの名無しさん
2017/08/04(金) 08:48:26.38ID:Q7buFUOM push raxになる
289デフォルトの名無しさん
2017/08/04(金) 08:53:09.50ID:Q7buFUOM というわけでビッグエンディアンは糞である
290デフォルトの名無しさん
2017/08/04(金) 09:16:15.84ID:SS0ANIEQ int32にしてもスタックやキャッシュは倍の速度で消費されるのかよ。
291デフォルトの名無しさん
2017/08/04(金) 09:27:05.86ID:Q7buFUOM キャッシュは確認してないけど
スタックはポインタ幅で消費されるね
スタックはポインタ幅で消費されるね
292デフォルトの名無しさん
2017/08/04(金) 09:31:06.85ID:Q7buFUOM 実装依存だとは思う
VisualStudioではそうだっつーだけ
VisualStudioではそうだっつーだけ
293デフォルトの名無しさん
2017/08/04(金) 12:56:51.39ID:+PWQy8Ni 実装依存じゃない
x86-64の仕様
x86-64の仕様
294デフォルトの名無しさん
2017/08/04(金) 12:57:32.28ID:+PWQy8Ni 普通、引数の受け渡しはスタックじゃなくてレジスタ使うけど
295デフォルトの名無しさん
2017/08/04(金) 13:15:35.79ID:SS0ANIEQ 呼出規約については知らないのか。
296デフォルトの名無しさん
2017/08/04(金) 14:31:21.93ID:PHBV9/TP 呼び出し規約は実装依存ではないけどアーキテクチャ依存でもないよ
そして、引数の受け渡しにレジスタをどう使うかというのは呼び出し規約と関係なく実装依存
さらに、引数はスタックに積まれるし、それはレジスタどうのこうのとは関係のない話
そして、引数の受け渡しにレジスタをどう使うかというのは呼び出し規約と関係なく実装依存
さらに、引数はスタックに積まれるし、それはレジスタどうのこうのとは関係のない話
297デフォルトの名無しさん
2017/08/04(金) 14:49:43.29ID:SS0ANIEQ 何を言ってるかさっぱり意味が分らないや。
298デフォルトの名無しさん
2017/08/04(金) 14:56:40.96ID:oD3njs5y 引数を { 頭から 末尾から } { レジスタ スタック } につんで
つんだ引数の巻き戻しを { 呼び出し側 呼ばれた側 } で行う
つんだ引数の巻き戻しを { 呼び出し側 呼ばれた側 } で行う
299デフォルトの名無しさん
2017/08/04(金) 18:15:41.13ID:fFEm/UGM >>296
呼び出し規約がアーキテクチャーに依存しないなんてことはあり得ない
呼び出し規約がアーキテクチャーに依存しないなんてことはあり得ない
300デフォルトの名無しさん
2017/08/04(金) 18:17:54.06ID:5d5G+9Ac >>296はどうしようもない低能
その低能にマジレスみっともない
その低能にマジレスみっともない
301デフォルトの名無しさん
2017/08/04(金) 18:24:58.70ID:gG3ajqK7302デフォルトの名無しさん
2017/08/04(金) 19:06:39.89ID:gMHFD1Iy その規約をやぶって、全部スタックに乗せる、という呼び出し規約を自分で実装していいですか?
303デフォルトの名無しさん
2017/08/04(金) 19:13:12.05ID:07Vnvfe5 規約は他のプログラムと協調するためだけのもの。
他のプログラムと絡まないんなら好きにすればいい。
他のプログラムと絡まないんなら好きにすればいい。
304デフォルトの名無しさん
2017/08/04(金) 19:20:42.44ID:gG3ajqK7 >>302
別にAPI単位の規約だから好きにすれば良いけど、スタックだと32bitよりメモリ喰うし増えたレジスタ活かさずメモリとやり取りだから関数呼び出しが多いほど速度に差が出るよ。
別にAPI単位の規約だから好きにすれば良いけど、スタックだと32bitよりメモリ喰うし増えたレジスタ活かさずメモリとやり取りだから関数呼び出しが多いほど速度に差が出るよ。
305デフォルトの名無しさん
2017/08/04(金) 19:22:07.45ID:PHBV9/TP >>301
勉強になったわ
勉強になったわ
306デフォルトの名無しさん
2017/08/04(金) 19:37:44.52ID:9p5UOFbs アセンブラで書くならともかく、
既存のコンパイラで自己流の呼び出し規約を使うって可能なのかな。
既存のコンパイラで自己流の呼び出し規約を使うって可能なのかな。
307デフォルトの名無しさん
2017/08/04(金) 19:43:40.82ID:gG3ajqK7 レジスタとか出てる時点でアセンブラやけどね。
高級言語からは同じに見えてもアセンブラからAPI呼ぶ時に混乱の元だから規約になってるんだろう。
高級言語からは同じに見えてもアセンブラからAPI呼ぶ時に混乱の元だから規約になってるんだろう。
308デフォルトの名無しさん
2017/08/04(金) 19:47:10.77ID:LmZvF4Bx309デフォルトの名無しさん
2017/08/04(金) 19:49:02.44ID:fFEm/UGM アセンブラでリーフ関数を呼ぶとき位だな
自己流が役立つのは
自己流が役立つのは
310デフォルトの名無しさん
2017/08/04(金) 20:12:22.52ID:B2ZVqR3g pro*cって何のために存在するの?
普通にc言語のコードにSQL埋め込めばよくね?
普通にc言語のコードにSQL埋め込めばよくね?
311デフォルトの名無しさん
2017/08/04(金) 20:15:41.79ID:d/io8eQ7312デフォルトの名無しさん
2017/08/04(金) 20:27:46.30ID:fFEm/UGM floatやdoubleが混ざれば
313デフォルトの名無しさん
2017/08/04(金) 23:32:26.83ID:ajRTrwbv >>310
普通はCにSQL埋め込むなんてできないだろ。
SQL文を送ってコンパイルする関数を呼んで実行する関数を呼んで結果を取得する関数を呼ぶので
かまわないならPro*Cなんて必要ない。
それにしてもなんで今頃Pro*Cなんだろうか。とっくに廃止されたかと思ってた。
普通はCにSQL埋め込むなんてできないだろ。
SQL文を送ってコンパイルする関数を呼んで実行する関数を呼んで結果を取得する関数を呼ぶので
かまわないならPro*Cなんて必要ない。
それにしてもなんで今頃Pro*Cなんだろうか。とっくに廃止されたかと思ってた。
314デフォルトの名無しさん
2017/08/05(土) 01:02:35.26ID:wHnek147 よくわからないんだけどSQLと連動できるプログラム言語ってあるの?
315デフォルトの名無しさん
2017/08/05(土) 01:36:09.75ID:AmDvMFkm Transact-SQLとかのことか?
316はちみつ餃子 ◆8X2XSCHEME
2017/08/05(土) 02:01:06.28ID:mmL6pr8y Linq とか
317デフォルトの名無しさん
2017/08/05(土) 13:32:17.23ID:9ltGhnE7 >>314
SQL埋め込みコボルが世の中に何百万行残ってるとおもってんだ
SQL埋め込みコボルが世の中に何百万行残ってるとおもってんだ
318デフォルトの名無しさん
2017/08/05(土) 17:30:23.26ID:eD6LHYAo319デフォルトの名無しさん
2017/08/06(日) 15:44:19.07ID:4cVoKrwP コボルかー
じゃjavaとかpythonとかC++やCで大量データを扱おうと思ったら何らかのアルゴリズムでデーターベース自作するしかないの?
それともそういう目的だとすべからくLinqとかつかってるの?
じゃjavaとかpythonとかC++やCで大量データを扱おうと思ったら何らかのアルゴリズムでデーターベース自作するしかないの?
それともそういう目的だとすべからくLinqとかつかってるの?
320デフォルトの名無しさん
2017/08/06(日) 16:33:45.26ID:k6XOSsfa ORまっぱ
321デフォルトの名無しさん
2017/08/07(月) 00:24:32.53ID:9fB0IwUX 大量のデータを処理したいのならPLSQLとかのdb上で動作するやつじゃないの?
322デフォルトの名無しさん
2017/08/07(月) 00:26:46.20ID:DdwwpY1/ DB操作用のクラスが標準ライブラリにあるから、その言語はSQLをサポートしてると思ってるのだろう。
323デフォルトの名無しさん
2017/08/08(火) 21:38:02.52ID:9+bCDZAx const char ex1[] = "test";
const char ex2[] = { 't', 'e', 's', 't', '\0' };
auto ex3 = "test";
auto& ex4 = "test";
auto&& ex5 = "test";
ググってみると、ex1とex2は完全に等価、ex3はconst char*?
ex4とex5はconst char[]だけどex1、ex2と等価ではない?
どういうことッスか?なんかよー分からんです。
const char ex2[] = { 't', 'e', 's', 't', '\0' };
auto ex3 = "test";
auto& ex4 = "test";
auto&& ex5 = "test";
ググってみると、ex1とex2は完全に等価、ex3はconst char*?
ex4とex5はconst char[]だけどex1、ex2と等価ではない?
どういうことッスか?なんかよー分からんです。
324デフォルトの名無しさん
2017/08/08(火) 21:44:21.88ID:RV4q7wps 変数名の上にマウスポインターを持って行く
ぐらいは試したのだろうか
ぐらいは試したのだろうか
325はちみつ餃子 ◆8X2XSCHEME
2017/08/08(火) 22:10:21.09ID:FFmZneRO 誰もかれもがモダンな統合開発環境を使ってると思ったら間違いやで。
326片山博文MZ ◆T6xkBnTXz7B0
2017/08/08(火) 22:12:27.93ID:m3/ZcJyF 早くナウいモダンボーイになれよ
327デフォルトの名無しさん
2017/08/08(火) 22:13:12.16ID:RV4q7wps328片山博文MZ ◆T6xkBnTXz7B0
2017/08/08(火) 22:16:15.22ID:m3/ZcJyF 配列への参照というのが分かりにくいね。
329デフォルトの名無しさん
2017/08/09(水) 18:30:53.88ID:hewgQard using F = void () &;
struct A { void f() & {} };
F A::*const &mp = &A::f;
参照もこのぐらい複雑になるとコンパイラーですら正しく実装できないものが出てくる
struct A { void f() & {} };
F A::*const &mp = &A::f;
参照もこのぐらい複雑になるとコンパイラーですら正しく実装できないものが出てくる
330デフォルトの名無しさん
2017/08/09(水) 20:42:43.33ID:deJRgLks 初心者歓迎スレはいつから難読コードスレになったんだ?
331デフォルトの名無しさん
2017/08/09(水) 23:21:19.78ID:HVjwey6J 難読禁止スレではないし
それより言語を断らずにc++限定の話すんなや
それより言語を断らずにc++限定の話すんなや
332デフォルトの名無しさん
2017/08/09(水) 23:58:04.92ID:1RczvVHb ぷらぷらは意図しない難読化しやすいよなぁ
333デフォルトの名無しさん
2017/08/10(木) 00:19:15.22ID:iih/xgGV おまえらは意図してドヤ顔でオナニーコード貼って理解できないなら出家しろとか言ってるからな。
初心者相手にマウンティングとか見てて恥ずかしい。
初心者相手にマウンティングとか見てて恥ずかしい。
334デフォルトの名無しさん
2017/08/10(木) 07:19:08.51ID:9leEGZbL バカにマウンティングしてるお前や俺よりマシだろ w
335デフォルトの名無しさん
2017/08/10(木) 07:42:54.68ID:0ifqJKrS http://d.hatena.ne.jp/yupo5656/20060907/
この話ってグローバル変数の時だけと思っていいですか?
void f(){ const char g[] = "asdf"; }
だと毎回初期化する分、損になりそうに思うんですが
この話ってグローバル変数の時だけと思っていいですか?
void f(){ const char g[] = "asdf"; }
だと毎回初期化する分、損になりそうに思うんですが
336デフォルトの名無しさん
2017/08/10(木) 07:57:39.32ID:OxRJE4uH 普通は最適化されて何の問題もないだろうけど
組み込み用の一部の糞コンパイラとかで使う可能性があるなら書き換えておいた方が良いかもね
組み込み用の一部の糞コンパイラとかで使う可能性があるなら書き換えておいた方が良いかもね
337デフォルトの名無しさん
2017/08/10(木) 08:00:25.98ID:OxRJE4uH 極端に悪くなる可能性のあるコードにしない
汎用性のあるコードを書く時の基本
特定の環境だけならその環境でテストしてみればわかること
汎用性のあるコードを書く時の基本
特定の環境だけならその環境でテストしてみればわかること
338デフォルトの名無しさん
2017/08/10(木) 08:05:23.26ID:PWbZqU7d >>335
だからstatic付けろって書いてあるっしょ
だからstatic付けろって書いてあるっしょ
339デフォルトの名無しさん
2017/08/10(木) 12:55:02.15ID:XSzwBP/X リテラルに名前付けたいだけなら
auto&&var=リテラル
何も考えずこれでええw
auto&&var=リテラル
何も考えずこれでええw
340はちみつ餃子 ◆8X2XSCHEME
2017/08/10(木) 13:19:12.39ID:eseR3mB4 せやろか
341デフォルトの名無しさん
2017/08/10(木) 14:56:24.20ID:R7slyUqA はいそうです
342デフォルトの名無しさん
2017/08/10(木) 16:20:23.29ID:K3yW/cOR もしかして#defineで定数用意するよりそっちの方がかっこいい?
343デフォルトの名無しさん
2017/08/10(木) 16:58:59.12ID:R5q9oGzu マクロ多用するとデバッグ面倒にならね?
344デフォルトの名無しさん
2017/08/10(木) 16:59:23.11ID:9PTjWwFP #define A 100 ←存在が害悪の化石老人
auto &&A = 100; ←ODRを考えない短絡思考
constexpr int A = 100; // ←ふつうの人
constexpr auto &&A = 100; // ←ちょっとヘンな人
auto &&A = 100; ←ODRを考えない短絡思考
constexpr int A = 100; // ←ふつうの人
constexpr auto &&A = 100; // ←ちょっとヘンな人
345デフォルトの名無しさん
2017/08/10(木) 18:17:00.74ID:OxRJE4uH 組み込みCだとdefineしか出来なかったりするんだよ
346デフォルトの名無しさん
2017/08/10(木) 18:23:30.24ID:0YJhJ81N >>344
ODR って何の略?
ODR って何の略?
347デフォルトの名無しさん
2017/08/10(木) 18:53:23.23ID:cpubt7xV >>346
ODRとはOne Definition RuleのことでC++の重要なルールである。
Cの仮定義と異なりC++ではインライン関数やテンプレートを除き
「定義」が複数あってはならない。
この多重定義の禁止と一部の例外を定めたルールがODRと呼ばれる。
例えばauto && A = 100;が記述されたヘッダファイルを
二つの翻訳単位からincludeしたとすると
二つの翻訳単位でAが定義されることになりエラーとなる。
詳細は処理系のマニュアルを見よ。
ODRとはOne Definition RuleのことでC++の重要なルールである。
Cの仮定義と異なりC++ではインライン関数やテンプレートを除き
「定義」が複数あってはならない。
この多重定義の禁止と一部の例外を定めたルールがODRと呼ばれる。
例えばauto && A = 100;が記述されたヘッダファイルを
二つの翻訳単位からincludeしたとすると
二つの翻訳単位でAが定義されることになりエラーとなる。
詳細は処理系のマニュアルを見よ。
348デフォルトの名無しさん
2017/08/10(木) 19:40:58.66ID:1RrigXav もしかしてヘッダファイルにconstexpr auto &&A = "lkjdslkjf";とか書くのって合法?
#define 名前 定数としてたやつは全部constexpr auto &&名前 = 定数で置き換えられる?
#define 名前 定数としてたやつは全部constexpr auto &&名前 = 定数で置き換えられる?
349デフォルトの名無しさん
2017/08/10(木) 21:11:04.47ID:yu1iQyxx350デフォルトの名無しさん
2017/08/11(金) 03:47:43.97ID:eOUFNbYQ #define→enum→const→constexpr
定数書くのに変わり杉です
理想論いらないです#define溢れた現実世界見よ
定数書くのに変わり杉です
理想論いらないです#define溢れた現実世界見よ
351デフォルトの名無しさん
2017/08/11(金) 08:37:53.72ID:NrUav3sg352デフォルトの名無しさん
2017/08/11(金) 08:55:50.68ID:xt3khzo9 constexprにしたほうがいいものがconstになってるのは結構あるけど、defineなんてほぼ見ないけどな
353デフォルトの名無しさん
2017/08/11(金) 11:58:39.97ID:vOciZ7Dc >>351
Aで詐欺でもしてるんですか?
Aで詐欺でもしてるんですか?
354はちみつ餃子 ◆8X2XSCHEME
2017/08/11(金) 13:32:11.00ID:eZ0/1svY さすがに #define は殺そう
355デフォルトの名無しさん
2017/08/11(金) 14:16:58.81ID:Tw4iEl8C 組み込みのチープな世界を知らないんだな
356デフォルトの名無しさん
2017/08/11(金) 14:29:14.52ID:Ngnf1AZe 知る必要すらない
357デフォルトの名無しさん
2017/08/11(金) 14:37:28.25ID:Tw4iEl8C リッチな環境限定のスレじゃないから
環境依存OK
環境依存OK
358デフォルトの名無しさん
2017/08/11(金) 14:39:12.01ID:Tw4iEl8C 知る必要がない人が大部分だろうが
ここはそういう人限定のスレではない
ここはそういう人限定のスレではない
359デフォルトの名無しさん
2017/08/11(金) 14:40:43.01ID:Tw4iEl8C >>354 みたいなのを見ると、視野が狭いと思ってしまう
色々な事情で色々なコードがある
色々な事情で色々なコードがある
360デフォルトの名無しさん
2017/08/11(金) 14:43:55.42ID:Tw4iEl8C Cに移植する可能性がゼロであるコードをC++上で新規でdefineで書いてたら老害だと思う
361デフォルトの名無しさん
2017/08/11(金) 15:18:06.60ID:BFfVWgAm 組み込みCだとstatic const使えてもアセンブリレベルで
即値にならないので#defineは常識
環境依存スレで多様性否定する奴は去れ
即値にならないので#defineは常識
環境依存スレで多様性否定する奴は去れ
362デフォルトの名無しさん
2017/08/11(金) 15:54:54.01ID:99wg1jHM >>355
どこのコンパイラ使ってるか書いてみ
どこのコンパイラ使ってるか書いてみ
364デフォルトの名無しさん
2017/08/11(金) 19:54:31.22ID:+jIwXf8Q constとconstexprの違いがよくわからない
365デフォルトの名無しさん
2017/08/11(金) 20:11:06.67ID:TX++PaV2 動的か静的かの違い?
366デフォルトの名無しさん
2017/08/11(金) 20:26:59.57ID:xY0P43RN ROM に書ける内容だったら constexpr
RAM に置かなければならないのなら const
RAM に置かなければならないのなら const
367デフォルトの名無しさん
2017/08/11(金) 20:35:58.34ID:+GdUPlS/ ROMって見たこと無いけど実在するの?
368デフォルトの名無しさん
2017/08/11(金) 22:35:43.38ID:nYt6U0do >>323
分かるヤツ使ってればいいだろ
分かるヤツ使ってればいいだろ
369デフォルトの名無しさん
2017/08/11(金) 22:38:20.04ID:+GdUPlS/ >>364
どちらもコンパイル時に決まるものも決まらないものも扱うUNKO仕様なので常人が理解できないのは致し方ない
一つ知っておくべきなのは「constexprの変数はコンパイル時に決まるもののみ」ということ
どちらもコンパイル時に決まるものも決まらないものも扱うUNKO仕様なので常人が理解できないのは致し方ない
一つ知っておくべきなのは「constexprの変数はコンパイル時に決まるもののみ」ということ
370デフォルトの名無しさん
2017/08/12(土) 06:07:41.79ID:Bi4KH0eW371デフォルトの名無しさん
2017/08/12(土) 08:39:04.62ID:kmz0IeX9 メモリ増設の時ぐらいしかスロット見ないし
え?別の話?
え?別の話?
372デフォルトの名無しさん
2017/08/12(土) 08:43:37.90ID:4bZijuJS 光学メディアもROM、RAMか
373デフォルトの名無しさん
2017/08/12(土) 08:45:12.28ID:W5hpPQ56 デシタルネイティブ「RAMもROMを見たことがない」
374デフォルトの名無しさん
2017/08/12(土) 09:18:14.87ID:l8v9tpAX375デフォルトの名無しさん
2017/08/12(土) 11:23:24.91ID:cYvxwySm376デフォルトの名無しさん
2017/08/12(土) 11:30:23.35ID:Rv1gs3bL CDショップやDVDレンタルショップがあってもそこに並んでいるのがROMだと認識できない無知なだけでは
378デフォルトの名無しさん
2017/08/12(土) 14:27:13.69ID:sYSoZbpb CDROMなら知ってるよ
379デフォルトの名無しさん
2017/08/12(土) 15:36:58.80ID:B05a5g6/ まあスマホのスペックにはROMとRAMの容量が書いてあるけど
殆どの利用者は理解してないな
殆どの利用者は理解してないな
380はちみつ餃子 ◆8X2XSCHEME
2017/08/12(土) 16:26:44.03ID:5zwa3GdH スマホの表記で ROM って言ってるの、そもそも ROM じゃないだろっていう。
381デフォルトの名無しさん
2017/08/12(土) 17:41:32.36ID:ORwFQQja フラッシュはEEPROMの一種だからな
382デフォルトの名無しさん
2017/08/12(土) 18:25:30.05ID:Bi4KH0eW フラッシュはROMの一種
383デフォルトの名無しさん
2017/08/12(土) 22:15:11.32ID:KtFjlZWy class C {
private:
static int secret;
public:
friend int peep() {return secret;}
};
このpeepはどうやって呼び出すのが正解なんだぜ?
private:
static int secret;
public:
friend int peep() {return secret;}
};
このpeepはどうやって呼び出すのが正解なんだぜ?
384デフォルトの名無しさん
2017/08/12(土) 22:18:47.73ID:3DdLvbHE てかそれコンパイル通る?
385デフォルトの名無しさん
2017/08/12(土) 22:25:08.16ID:KtFjlZWy386デフォルトの名無しさん
2017/08/12(土) 22:28:18.66ID:3DdLvbHE へー、通るんだ。
とりあえず、peep()はメンバー関数じゃないから引数にCを渡すなりするのが普通の使い方だろう。
とりあえず、peep()はメンバー関数じゃないから引数にCを渡すなりするのが普通の使い方だろう。
387デフォルトの名無しさん
2017/08/12(土) 22:33:38.16ID:l8v9tpAX388デフォルトの名無しさん
2017/08/12(土) 22:41:10.73ID:KtFjlZWy おおお
Cクラス渡すと通った
class C {
private:
static int secret;
public:
friend int peep(C data) {return secret;}
};
int PosCalc(BOOL flag) {
C data(0, 0)
int count = peep(data);
//いろいろ計算
}
ダミーでインスタンス渡すってことなんだな
Cクラス渡すと通った
class C {
private:
static int secret;
public:
friend int peep(C data) {return secret;}
};
int PosCalc(BOOL flag) {
C data(0, 0)
int count = peep(data);
//いろいろ計算
}
ダミーでインスタンス渡すってことなんだな
389デフォルトの名無しさん
2017/08/12(土) 22:44:09.18ID:WjSPvpbD friendの意味分かってる?
390デフォルトの名無しさん
2017/08/12(土) 22:53:16.34ID:Yi4OBpEw ROM 不揮発メモリ
RAM 揮発メモリ
リードオンリー何それ
RAM 揮発メモリ
リードオンリー何それ
391デフォルトの名無しさん
2017/08/12(土) 23:05:04.34ID:Bi4KH0eW MRAMとかFRAMは不揮発
392デフォルトの名無しさん
2017/08/12(土) 23:05:42.05ID:qm/cOPpP393デフォルトの名無しさん
2017/08/12(土) 23:10:35.92ID:3DdLvbHE secretはstaticだったか。見落としてた。
394はちみつ餃子 ◆8X2XSCHEME
2017/08/13(日) 00:36:14.04ID:B4YDUmld >>387
Read Only つってるのに、意味が拡大して結局それどういう意味なんだよっていう
Read Only つってるのに、意味が拡大して結局それどういう意味なんだよっていう
395デフォルトの名無しさん
2017/08/13(日) 01:36:36.53ID:HI8S2XNx 文脈で判断しないと。CでROMつったら不揮発性メモリのこと。CDROMのことではない。
396デフォルトの名無しさん
2017/08/13(日) 01:39:15.30ID:PA7iDDOj それにしてもfirendって付けた関数の方にボディーを書くことが出来るんだな
キモ
キモ
397片山博文MZ ◆T6xkBnTXz7B0
2017/08/13(日) 01:59:58.88ID:8O7/DK3E CでぇーROMまんてぃっく
398デフォルトの名無しさん
2017/08/13(日) 06:29:34.48ID:03rMAOAx >>395
それは違う
それは違う
399デフォルトの名無しさん
2017/08/13(日) 06:30:06.63ID:03rMAOAx >>396
friendじゃなくてもかけるけど
friendじゃなくてもかけるけど
400デフォルトの名無しさん
2017/08/13(日) 07:55:49.45ID:WSSr83j3 >>390
ReadOnlyMemory
ReadOnlyMemory
401デフォルトの名無しさん
2017/08/13(日) 08:21:05.43ID:49RznEc3 揮発不揮発は関係ない
読み込みと同等の速度で普通に書き込みが出来るか
Cの場合、普通の代入やmemcpyで普通に書き込み出来るかどうか
読み込みと同等の速度で普通に書き込みが出来るか
Cの場合、普通の代入やmemcpyで普通に書き込み出来るかどうか
402デフォルトの名無しさん
2017/08/13(日) 09:45:28.87ID:HI8S2XNx >>398
おまえのマイコンにはCDROMが内臓されてるのかよ。馬鹿は休み休みいえ。
おまえのマイコンにはCDROMが内臓されてるのかよ。馬鹿は休み休みいえ。
403デフォルトの名無しさん
2017/08/13(日) 10:05:31.19ID:HI8S2XNx >>401
また頓珍漢なことを。
また頓珍漢なことを。
404デフォルトの名無しさん
2017/08/13(日) 10:16:39.11ID:TSMbvEPJ405デフォルトの名無しさん
2017/08/13(日) 10:25:56.46ID:HI8S2XNx EEPROMの一種だろうが。組み込み経験ない奴はもうレスすんな。
406デフォルトの名無しさん
2017/08/13(日) 10:37:54.73ID:TSMbvEPJ 組み込み経験と何の関係がw
407デフォルトの名無しさん
2017/08/13(日) 10:38:05.69ID:PA7iDDOj >>399
普通friend指定はこのようにするとおもう
http://www.sirochro.com/note/cpp-class-friend-function/
それを
http://ideone.com/qc8SUA
のように出来るのはキモいと思うが
普通friend指定はこのようにするとおもう
http://www.sirochro.com/note/cpp-class-friend-function/
それを
http://ideone.com/qc8SUA
のように出来るのはキモいと思うが
408デフォルトの名無しさん
2017/08/13(日) 11:19:48.45ID:HG5dPUko >>404
フラッシュメモリはROMの仲間だけど…
フラッシュメモリはROMの仲間だけど…
409デフォルトの名無しさん
2017/08/13(日) 11:20:22.74ID:md5XkZ0n EEPROMはROMなのか?
410デフォルトの名無しさん
2017/08/13(日) 11:31:45.02ID:HG5dPUko 不揮発性だけどROMでしょ
411デフォルトの名無しさん
2017/08/13(日) 20:43:58.81ID:Tf2liO6H そりゃ揮発性のROMって意味ないから...
412デフォルトの名無しさん
2017/08/13(日) 21:09:32.11ID:1akT1/u1 肉抜きのステーキとかチーズ抜きのチーズバーガーみたいなもの?
413デフォルトの名無しさん
2017/08/13(日) 23:37:23.43ID:b2PcXx/4 そういうこと言うから豆腐ステーキとか書きたくなる
414デフォルトの名無しさん
2017/08/13(日) 23:41:05.82ID:WikyJvVl415デフォルトの名無しさん
2017/08/13(日) 23:45:20.52ID:WikyJvVl ん?天抜きとかたのまないの?
416デフォルトの名無しさん
2017/08/13(日) 23:51:34.49ID:TSMbvEPJ 天ぬきは天ぷら抜きの天ぷら蕎麦じゃないからな。
417デフォルトの名無しさん
2017/08/14(月) 00:40:01.90ID:NpV9/t44 世の中知らんやつらが多いな
418デフォルトの名無しさん
2017/08/14(月) 00:46:16.17ID:NpV9/t44 フラッシュもEEPROMもROMと呼ばれる
ROMの語源はRead Only Memory
でも、今は消去や書き込みが可能なメモリにも使われるようになった
読み書きともランダムアクセスが可能で、アクセス時間も読み込みと書き込みで大きな差が無いものがRAM
DRAMやSRAM, MRAM, FRAMがこの範疇
そうでないものがROM
NAND, NOR, EEPROMなんかはROMという扱い
ROMの語源はRead Only Memory
でも、今は消去や書き込みが可能なメモリにも使われるようになった
読み書きともランダムアクセスが可能で、アクセス時間も読み込みと書き込みで大きな差が無いものがRAM
DRAMやSRAM, MRAM, FRAMがこの範疇
そうでないものがROM
NAND, NOR, EEPROMなんかはROMという扱い
419デフォルトの名無しさん
2017/08/14(月) 00:59:13.70ID:qET1a6fj いろんな人がいるね。
俺の中では電源切っても覚えてるかどうかの違いだよ。
俺の中では電源切っても覚えてるかどうかの違いだよ。
420デフォルトの名無しさん
2017/08/14(月) 01:00:55.60ID:NpV9/t44 MRAMはROMか?
FRAMはROMか?
FRAMはROMか?
421デフォルトの名無しさん
2017/08/14(月) 01:16:56.43ID:qET1a6fj ROMです(俺の中ではね)
422デフォルトの名無しさん
2017/08/14(月) 01:33:45.85ID:IT2ffc23 ID:qET1a6fjが非常識なのはよく分かったけどあまり言いふらさない方が生活し易いと思うよ
423デフォルトの名無しさん
2017/08/14(月) 01:37:55.14ID:IeoGyZA4 もう少し役立つ話題にしろよ
424デフォルトの名無しさん
2017/08/14(月) 04:51:13.03ID:qbtpazWw template <typename T>
class DataStoreArray
{
public:
explicit DataStoreArray(std::size_t size) : mValueArray(new T[size]) {}
~DataStoreArray() { delete [] mValueArray; }
inline T operator[](std::size_t index) const
{
cout << "from primary : T : " << index <<endl;
return mValueArray[index];
}
inline T& operator[](std::size_t index)
{
cout << "from primary : T& : " << index <<endl;
return mValueArray[index];
}
private: T* mValueArray;
};
int main()
{
static const int size = 3;
DataStoreArray<int> iStoreArray(size);
for (int i = 0; i < size; ++i)
{
iStoreArray[i] = i * 10;
}
}
from primary : T& : 0
from primary : T& : 1
from primary : T& : 2
iStoreArray2[i] = i * 10;で[]をオーバーロードした時
戻り値がT&のほうが呼び出されるのはなんででしょうか?
class DataStoreArray
{
public:
explicit DataStoreArray(std::size_t size) : mValueArray(new T[size]) {}
~DataStoreArray() { delete [] mValueArray; }
inline T operator[](std::size_t index) const
{
cout << "from primary : T : " << index <<endl;
return mValueArray[index];
}
inline T& operator[](std::size_t index)
{
cout << "from primary : T& : " << index <<endl;
return mValueArray[index];
}
private: T* mValueArray;
};
int main()
{
static const int size = 3;
DataStoreArray<int> iStoreArray(size);
for (int i = 0; i < size; ++i)
{
iStoreArray[i] = i * 10;
}
}
from primary : T& : 0
from primary : T& : 1
from primary : T& : 2
iStoreArray2[i] = i * 10;で[]をオーバーロードした時
戻り値がT&のほうが呼び出されるのはなんででしょうか?
425デフォルトの名無しさん
2017/08/14(月) 05:23:42.65ID:P3rVXCaa class Point {
public:
Point() {}
int x, y;
};
std::vector<Point*> vec;
vec..push_back(new Point());
こんな感じに作られたvectorの中のPointを解放するにはどうしたらいいでしょうか
以下のようなコードを考えて実行していたところ、free_base.cppというところで例外が発生しました
内容は「block Error reading register value.」です
for (unsigned int i = 0; i < vec.size(); i++) {
delete vec[i];
}
public:
Point() {}
int x, y;
};
std::vector<Point*> vec;
vec..push_back(new Point());
こんな感じに作られたvectorの中のPointを解放するにはどうしたらいいでしょうか
以下のようなコードを考えて実行していたところ、free_base.cppというところで例外が発生しました
内容は「block Error reading register value.」です
for (unsigned int i = 0; i < vec.size(); i++) {
delete vec[i];
}
426424
2017/08/14(月) 05:24:58.54ID:qbtpazWw >>424
自己解決しました。
自己解決しました。
427デフォルトの名無しさん
2017/08/14(月) 05:58:41.65ID:qbtpazWw >>425
タイプミスとは思うけどvec..push_backのドット2つ付けてるのが原因じゃ
タイプミスとは思うけどvec..push_backのドット2つ付けてるのが原因じゃ
428デフォルトの名無しさん
2017/08/14(月) 18:57:13.14ID:6kKovBuY >>427
それではないです
それではないです
430デフォルトの名無しさん
2017/08/14(月) 20:02:20.41ID:cPbpYqjZ ↑バカ
431デフォルトの名無しさん
2017/08/14(月) 21:00:06.87ID:2BlD9S+P >>425
ここに書いてない部分に問題がある気がする
ここに書いてない部分に問題がある気がする
432デフォルトの名無しさん
2017/08/14(月) 21:09:59.18ID:4UD3Pot4 >>431
delete済みのポインタを更にdeleteしてたりしてな
delete済みのポインタを更にdeleteしてたりしてな
433デフォルトの名無しさん
2017/08/14(月) 22:15:23.49ID:IeoGyZA4 >>425
stackoverflow.comで聞くといいよ
stackoverflow.comで聞くといいよ
434デフォルトの名無しさん
2017/08/14(月) 22:21:54.47ID:i3ERgNqH 2chにコード書きこんで質問するんなら
そのコードで問題が再現するのかどうなのかぐらい確認してから
書き込んだ方が良いだろうな、常識的に
そのコードで問題が再現するのかどうなのかぐらい確認してから
書き込んだ方が良いだろうな、常識的に
435デフォルトの名無しさん
2017/08/14(月) 23:12:49.50ID:G751meAI でも2chだからなー
436デフォルトの名無しさん
2017/08/14(月) 23:24:57.28ID:gV3KeQMV 普通は再現する最小限のコードこさえてる時点で
たいていはバグの原因に気付いて質問やめる
たいていはバグの原因に気付いて質問やめる
437デフォルトの名無しさん
2017/08/15(火) 00:30:11.65ID:ILMibSrs > block Error reading register value
これ何のエラー?
これ何のエラー?
438デフォルトの名無しさん
2017/08/15(火) 01:01:30.84ID:xb8goknd439デフォルトの名無しさん
2017/08/15(火) 01:17:41.90ID:ILMibSrs なら、流行の方法は知らないけど、ポインタを最初にNULLできちんと初期化して
NULLチェックしてからdeleteして、deleteしたら忘れずにNULLで初期化すれぱいいんじゃないの。
NULLチェックしてからdeleteして、deleteしたら忘れずにNULLで初期化すれぱいいんじゃないの。
440デフォルトの名無しさん
2017/08/15(火) 01:36:52.39ID:RtDnkjIA スマポ使え
441デフォルトの名無しさん
2017/08/15(火) 01:43:30.18ID:z7TEyY+0442デフォルトの名無しさん
2017/08/15(火) 02:48:07.41ID:ILMibSrs 調べたらいっぱいあって余計に混乱しそうだわ
auto_ptr
unique_ptr
shared_ptr
weak_ptr
auto_ptr
unique_ptr
shared_ptr
weak_ptr
443デフォルトの名無しさん
2017/08/15(火) 06:24:37.22ID:/mWh256Z >>442
ナマポで自分でやるのがいいよね
ナマポで自分でやるのがいいよね
444デフォルトの名無しさん
2017/08/15(火) 08:15:54.91ID:GzAS59pw445デフォルトの名無しさん
2017/08/15(火) 08:22:05.26ID:nyBipa/m なんか循環参照がどうとか言う時に使う
446デフォルトの名無しさん
2017/08/15(火) 08:37:37.53ID:X4XuSaPF weak_ptrってかシンプルなreference_ptrみたいなのがほしい
447デフォルトの名無しさん
2017/08/15(火) 10:08:07.69ID:JqN6tr9G それなら生ポで良いじゃん
448デフォルトの名無しさん
2017/08/15(火) 15:03:52.07ID:cAweUVNO 話題に便乗して。
new,delete満載の既存のコードをスマポに置き換えてくコツみたいのってあります?
作り直したほうが早いのかな
new,delete満載の既存のコードをスマポに置き換えてくコツみたいのってあります?
作り直したほうが早いのかな
449デフォルトの名無しさん
2017/08/15(火) 18:45:11.19ID:tu7eHngw shared_ptrか生ポの入ったvectorを基底クラスにアップキャストするスマートな方法おしえてください
割と使うくせに良い方法が思いつかない
割と使うくせに良い方法が思いつかない
450デフォルトの名無しさん
2017/08/15(火) 19:01:49.84ID:Q70B1fQS451デフォルトの名無しさん
2017/08/15(火) 23:43:12.59ID:VOm+amDT アップキャストは特に何もしなくても必要になれば勝手に安全にアップキャストされるから
アップキャストするスマートな方法って質問の意図が良くわからない
というか、安全に勝手にアップキャストされるのは静的型のメリットの一つだし
アップキャストするスマートな方法って質問の意図が良くわからない
というか、安全に勝手にアップキャストされるのは静的型のメリットの一つだし
452デフォルトの名無しさん
2017/08/16(水) 00:01:22.48ID:2E64Am1a あーやっと質問の意味が分かった
vectorをvectorごとアップキャストして別のvectorに代入するのか
そんなことしたいと思ったこともなかったから分からなかったわ
アップキャストするときにアドレスをオフセットしなきゃならない場合があるから
勝手にはしてくれないんじゃないかな
たしかC#は勝手にしてくれるんだっけか
vectorをvectorごとアップキャストして別のvectorに代入するのか
そんなことしたいと思ったこともなかったから分からなかったわ
アップキャストするときにアドレスをオフセットしなきゃならない場合があるから
勝手にはしてくれないんじゃないかな
たしかC#は勝手にしてくれるんだっけか
453デフォルトの名無しさん
2017/08/16(水) 00:25:49.33ID:2E64Am1a なにかstd::の中に便利なものが用意されているかもしれないが
template< typename _t, typename _u >
void copy( std::vector<_t> &dst, std::vector<_u> &src )
{
auto size = src.size();
dst.resize( size );
auto dst_ptr = dst.data();
auto src_ptr = src.data();
for( size_t i = 0; i < size; ++i )
{
dst_ptr[ i ] = src_ptr[ i ];
}
return;
}
このような感じの適当なテンプレートでも作って対応したらどうですかね
もうちょっと汎用性を持たせることも出来るけど、std::listとかまず使わんし
vector専用ってことで良いんじゃないかな
template< typename _t, typename _u >
void copy( std::vector<_t> &dst, std::vector<_u> &src )
{
auto size = src.size();
dst.resize( size );
auto dst_ptr = dst.data();
auto src_ptr = src.data();
for( size_t i = 0; i < size; ++i )
{
dst_ptr[ i ] = src_ptr[ i ];
}
return;
}
このような感じの適当なテンプレートでも作って対応したらどうですかね
もうちょっと汎用性を持たせることも出来るけど、std::listとかまず使わんし
vector専用ってことで良いんじゃないかな
454デフォルトの名無しさん
2017/08/16(水) 00:44:05.66ID:2E64Am1a あ〜でもデフォルトのアロケータにしか対応しないのはアレか
template< typename _t, typename _u >
void copy_vector( _t &dst, _u &src )
か
template< typename _t, typename _u, typename _v, typename _w >
void copy( std::vector<_t, _u> &dst, std::vector<_v, _w> &src )
の方が良いのかね
template< typename _t, typename _u >
void copy_vector( _t &dst, _u &src )
か
template< typename _t, typename _u, typename _v, typename _w >
void copy( std::vector<_t, _u> &dst, std::vector<_v, _w> &src )
の方が良いのかね
455片山博文MZ ◆T6xkBnTXz7B0
2017/08/16(水) 00:49:08.01ID:N/6IcKLl x.assign(y.begin(), y.end());
456デフォルトの名無しさん
2017/08/16(水) 01:52:38.36ID:wWWqM4+K 典型的なautoの弊害コードだな。
457デフォルトの名無しさん
2017/08/16(水) 15:14:24.51ID:mnlpMbS3 strcmp で長さ0の文字列同士を比較した場合の結果は規定されてますか?
458デフォルトの名無しさん
2017/08/16(水) 16:09:03.15ID:53LlWcIm >結果は規定されてますか?
Yes
ISO/IEC 9899:2011 7.1.1/1では終端ヌルはstringの一部なので同じと見なされるだろう
ISO/IEC 14882:2014 21.8のstrcmpはCの規格丸投げなので同じだろう
Yes
ISO/IEC 9899:2011 7.1.1/1では終端ヌルはstringの一部なので同じと見なされるだろう
ISO/IEC 14882:2014 21.8のstrcmpはCの規格丸投げなので同じだろう
459457
2017/08/16(水) 16:17:21.15ID:mnlpMbS3 ありがとうございます
460デフォルトの名無しさん
2017/08/16(水) 19:58:01.86ID:SkaUp3/b >>454
こういうtemplateやtypenameが入り混じったc++のソースってc#好きの俺には耐えられん。ごちゃごちゃしていて見た目が美しく無いよね。
こういうtemplateやtypenameが入り混じったc++のソースってc#好きの俺には耐えられん。ごちゃごちゃしていて見た目が美しく無いよね。
461デフォルトの名無しさん
2017/08/16(水) 20:00:25.84ID:SkaUp3/b ああ、454さんを批判する意図は無いのでお間違いなく。
462デフォルトの名無しさん
2017/08/16(水) 21:21:06.13ID:64ASz8nj int main() {
std::deque<int> deq(10);
const std::deque<int>::size_type size = deq.size();
for (int i = 0; i < static_cast<int>(size); ++i) { deq[i] = i; }
std::cout << deq.front() << std::endl;
}
配列のサンプルコードで
const std::deque<int>::size_type size = deq.size();
こういう記述を良く見るんですが、
int size = deq.size();
では駄目なケースとかあるんですか?
std::deque<int> deq(10);
const std::deque<int>::size_type size = deq.size();
for (int i = 0; i < static_cast<int>(size); ++i) { deq[i] = i; }
std::cout << deq.front() << std::endl;
}
配列のサンプルコードで
const std::deque<int>::size_type size = deq.size();
こういう記述を良く見るんですが、
int size = deq.size();
では駄目なケースとかあるんですか?
463デフォルトの名無しさん
2017/08/16(水) 22:14:04.28ID:1Ba2PBWP テンプレートのウザイ仕様です
型に依存したコードにならざるをえないのに、
使えと強要するような型定義
型に依存したコードにならざるをえないのに、
使えと強要するような型定義
464デフォルトの名無しさん
2017/08/16(水) 22:15:53.93ID:1Ba2PBWP ていうか、キャストしてるから動作は同じだな
465デフォルトの名無しさん
2017/08/16(水) 22:45:16.00ID:zl8YLx97 それより
auto size = deq.size();
for (int i = 0; i < size; i++ );
で比較の部分に警告が出るのを何とかして欲しい
auto size = deq.size();
for (int i = 0; i < size; i++ );
で比較の部分に警告が出るのを何とかして欲しい
466デフォルトの名無しさん
2017/08/16(水) 22:48:56.53ID:TFzMtZDz なぜ、decltype(size)とすら書かないのか…
467デフォルトの名無しさん
2017/08/16(水) 22:54:21.64ID:zl8YLx97 for (decltype(size) i {}; i < size; i++);
ごめん、生理的に無理
ごめん、生理的に無理
468デフォルトの名無しさん
2017/08/16(水) 22:56:56.26ID:HDO3jlPo469デフォルトの名無しさん
2017/08/17(木) 02:50:59.58ID:POHMQxDJ どっちもsize_tじゃアカンの?
470デフォルトの名無しさん
2017/08/17(木) 03:45:02.07ID:sil69yD8 この手の話をする時間が勿体ない
c++の言語仕様に悩む時間が無駄
俺も頃合みて捨てるわ
c++の言語仕様に悩む時間が無駄
俺も頃合みて捨てるわ
471デフォルトの名無しさん
2017/08/17(木) 03:47:16.62ID:6E9r52D/ 組み込み、OS、ドライバを書く言語ではなくなったな。
472はちみつ餃子 ◆8X2XSCHEME
2017/08/17(木) 03:49:09.87ID:K5IWxEsn >>469
あかんよ。
この場合、 deq の型はたぶん deque を想定してるんだと思うけど、
deq.size() の返却値が size_t である保証はないはず。 (他のコンテナでも同様)
この型はあくまでも deque::size_type なので、
まあ一般的には size_t と同じになるだろうけど厳密に言えばそれをあてにするのはよろしくない。
あかんよ。
この場合、 deq の型はたぶん deque を想定してるんだと思うけど、
deq.size() の返却値が size_t である保証はないはず。 (他のコンテナでも同様)
この型はあくまでも deque::size_type なので、
まあ一般的には size_t と同じになるだろうけど厳密に言えばそれをあてにするのはよろしくない。
473デフォルトの名無しさん
2017/08/17(木) 06:22:12.53ID:zzoRHhsR sizeとdeq.size()が同じ型である必要はない
sizeがdeq.size()の値を保持出来れば何でもいい
charでもビットフィールドでも
sizeがdeq.size()の値を保持出来れば何でもいい
charでもビットフィールドでも
474デフォルトの名無しさん
2017/08/17(木) 07:08:05.04ID:6E9r52D/ グダグダ感が半端ないな。そりゃ全てを捨ててJavaやC#を作りたくなるわ。
でもJavaやC#がC++と同じ道を歩んでて笑える。
でもJavaやC#がC++と同じ道を歩んでて笑える。
475462
2017/08/17(木) 08:47:14.10ID:XAlxh4c7 とりあえず万全を期すためにってやつみたいですね。
レスありがとうございました。
レスありがとうございました。
476デフォルトの名無しさん
2017/08/18(金) 08:12:05.04ID:Df++WDQ/ [var1 var2] = func();
みたいに返り値2つにする方法ってないですか
みたいに返り値2つにする方法ってないですか
477デフォルトの名無しさん
2017/08/18(金) 08:19:11.14ID:cQGhZEXD 二つを含んだ構造体やクラスを返す
引数にアドレスや参照を渡してそこに書いてもらう
グローバル変数経由で返す
ファイル経由で返す
...
引数にアドレスや参照を渡してそこに書いてもらう
グローバル変数経由で返す
ファイル経由で返す
...
478デフォルトの名無しさん
2017/08/18(金) 08:25:33.13ID:jeMQJBsl >>476
std::tupleでググれ
std::tupleでググれ
479デフォルトの名無しさん
2017/08/18(金) 08:40:55.93ID:nZKbkzFD いいかげんCとC++分けようぜ
480デフォルトの名無しさん
2017/08/18(金) 09:18:42.99ID:tz1eiY37 >>476
有ります
有ります
481デフォルトの名無しさん
2017/08/18(金) 09:21:26.56ID:tz1eiY37 きっと昨日Visual C++をバージョンアップして
できるようになったのが嬉しかったに相違ない
できるようになったのが嬉しかったに相違ない
482デフォルトの名無しさん
2017/08/18(金) 11:50:59.94ID:CFJX4XlT 初心者歓迎スレなんだから、>>480みたいな小学生の悪ふざけみたいなレスはやめよう。
すでに真っ当な回答も出ているのに。
すでに真っ当な回答も出ているのに。
483デフォルトの名無しさん
2017/08/18(金) 13:03:51.12ID:Df++WDQ/484デフォルトの名無しさん
2017/08/18(金) 13:07:19.75ID:jeMQJBsl >>483
ついでにstd::tieもググっとくといいかも
ついでにstd::tieもググっとくといいかも
485デフォルトの名無しさん
2017/08/18(金) 21:34:14.61ID:dvMMsT1N 初歩的な質問で申し訳ないのですがC言語のおすすめの開発環境はなんでしょうか
調べてみたら結構種類があって自分で選ぶことができないです
調べてみたら結構種類があって自分で選ぶことができないです
486片山博文MZ ◆T6xkBnTXz7B0
2017/08/18(金) 21:39:48.25ID:sjvn+N2b487デフォルトの名無しさん
2017/08/18(金) 21:41:06.02ID:yRxu02Qs 意見が割れそうだけど、迷うくらいなら、winならvisualstudio, macならxcodeでも使ってみては
取り敢えずデバッガが手軽に使えれば何でもいい気はする
取り敢えずデバッガが手軽に使えれば何でもいい気はする
488デフォルトの名無しさん
2017/08/18(金) 21:41:55.55ID:enWn3c7M その前にそちらの環境を
489デフォルトの名無しさん
2017/08/18(金) 22:18:09.85ID:dvMMsT1N490デフォルトの名無しさん
2017/08/18(金) 22:46:00.68ID:FB1E6DTF 学生時代と就職当初はC、現在はJavaとCsharpを主にやっています
最近C++を独学で勉強しようと思って調べはじめたした
印象ですが、これは言語作った人はどうみても天才で変態なんじゃないかと思いました
言語仕様としてはJavaなんかの方が広いかも知れないけど…
奥深さというか、底無し沼な予感というか最強なのでは?との印象を持ちました
2ちゃんねるなんかで見るかぎりあまり人気のある言語では無さそうですが、これはJavaなんかでも同じでWeb屋さんとかが言ってる気がしました
以上が自分の現時点での感触なのですが、大きく外れてはいませんでしょうか?
釣りとかでは一切ないです
最近C++を独学で勉強しようと思って調べはじめたした
印象ですが、これは言語作った人はどうみても天才で変態なんじゃないかと思いました
言語仕様としてはJavaなんかの方が広いかも知れないけど…
奥深さというか、底無し沼な予感というか最強なのでは?との印象を持ちました
2ちゃんねるなんかで見るかぎりあまり人気のある言語では無さそうですが、これはJavaなんかでも同じでWeb屋さんとかが言ってる気がしました
以上が自分の現時点での感触なのですが、大きく外れてはいませんでしょうか?
釣りとかでは一切ないです
491デフォルトの名無しさん
2017/08/18(金) 22:56:37.18ID:R7MrN97k さいきょーだとかの漠然とした印象とか持つんじゃなくて、それぞれの言語の長所短所とか、どういうケースで使われているとか、そういうのをちゃんと調べたら?
492デフォルトの名無しさん
2017/08/18(金) 23:03:57.12ID:w2enVJbE C++は言語ヲタク的には際限なく楽しいけどそれだけ
今直ぐ実現したい何かがある時はpythonかphpで済ませちゃうw
お仕事の人はそんな自由ないだろうからガンダムしかない
今直ぐ実現したい何かがある時はpythonかphpで済ませちゃうw
お仕事の人はそんな自由ないだろうからガンダムしかない
493デフォルトの名無しさん
2017/08/18(金) 23:52:59.71ID:B0LmSygc >天才で
ものは言いようだな
複雑な概念を分かりやすく整理できる人間はこんなUNKO言語は作らない
ものは言いようだな
複雑な概念を分かりやすく整理できる人間はこんなUNKO言語は作らない
494デフォルトの名無しさん
2017/08/19(土) 05:46:25.10ID:65TMOtSV 新機能を使いたがる馬鹿は採用しません。
495デフォルトの名無しさん
2017/08/19(土) 11:11:21.66ID:2Vqw9aXW496デフォルトの名無しさん
2017/08/19(土) 11:37:47.76ID:fJjUBUKN C++は天才の言語と言うよりは、無駄に意識高い人の言語。
関係ないけど京都出身のプログラマはC++使ってる奴多い印象。
一見さんお断り的な文化が合ってるんだろう。
関係ないけど京都出身のプログラマはC++使ってる奴多い印象。
一見さんお断り的な文化が合ってるんだろう。
497デフォルトの名無しさん
2017/08/19(土) 11:48:31.10ID:w9JmRxmV >>496
C++11later になってからいっそうひどくなりました。テンプレート周りはもうわけわからん、翻訳じゃなくきんとした和書はでないものですかね
C++11later になってからいっそうひどくなりました。テンプレート周りはもうわけわからん、翻訳じゃなくきんとした和書はでないものですかね
498デフォルトの名無しさん
2017/08/19(土) 11:54:49.03ID:4VaJZBkL >>495
きっとライセンスのことなんて考えたことないんだよ
きっとライセンスのことなんて考えたことないんだよ
499デフォルトの名無しさん
2017/08/19(土) 12:10:40.40ID:zAuNzUDU >京都出身のプログラマ
ぷぷぷっ
ぷぷぷっ
500片山博文MZ ◆T6xkBnTXz7B0
2017/08/19(土) 12:35:47.59ID:cKMZzj+K まだWindows XPを使っている人が居るかも知れないから。
501デフォルトの名無しさん
2017/08/21(月) 00:35:19.32ID:3vfGh3Or まぁ、島根だか鳥取だかの出身のプログラマはruby大好きなイメージと同じだよな。
502デフォルトの名無しさん
2017/08/21(月) 08:26:40.74ID:zEm/QKUv ruby はやめて python にするよ‥
503デフォルトの名無しさん
2017/08/21(月) 16:02:51.68ID:ZisHBz7l 嫌、そこはALGOLだろう
504デフォルトの名無しさん
2017/08/22(火) 09:50:47.77ID:q1PzJh5l c/c++の簡単版があればいいんだが
rustはあまりにも機能が多い
rustはあまりにも機能が多い
505デフォルトの名無しさん
2017/08/22(火) 10:53:41.18ID:NZxMNqD7 スレチだけどオープンソースのAlgol68ってあるんだな
506デフォルトの名無しさん
2017/08/22(火) 11:29:16.92ID:KZ6Dh/Z1 >>504
java「呼んだ?」
java「呼んだ?」
507デフォルトの名無しさん
2017/08/22(火) 11:29:39.34ID:COEJtZVq C++はベターCとして使うのが最も生産的だと思いました。
508デフォルトの名無しさん
2017/08/22(火) 17:29:10.69ID:NIBb7Mxl auto使ってる奴見るとイタイ奴だなと思いました。
509デフォルトの名無しさん
2017/08/22(火) 21:27:29.17ID:hmTXL6wT auto に問題があるの?
510デフォルトの名無しさん
2017/08/22(火) 22:18:17.39ID:nZXv/xRm 別に痛い奴だと思われるとガソリン代が上がったりするわけじゃないからね
511デフォルトの名無しさん
2017/08/22(火) 22:31:49.37ID:gH/fspX5 型名 変数名 = ... だとデコボコするんで、ついつい
auto 変数名 = ... をズラズラっと並べたくなる
でも、書き終わってから読み直すと、あれ?逆に読みにくい?とか
どーでもいいとこで悩んでしまう
auto 変数名 = ... をズラズラっと並べたくなる
でも、書き終わってから読み直すと、あれ?逆に読みにくい?とか
どーでもいいとこで悩んでしまう
512デフォルトの名無しさん
2017/08/23(水) 08:09:55.25ID:Rd2CDMDC C# の var 論争再び w
老害ってほんと進歩しないのな
老害ってほんと進歩しないのな
513デフォルトの名無しさん
2017/08/23(水) 08:51:20.73ID:wn9e0tbq 老害って何歳から?
514デフォルトの名無しさん
2017/08/23(水) 10:35:28.29ID:Bqf1nBHj515デフォルトの名無しさん
2017/08/23(水) 12:45:56.26ID:svL9mCb4 年齢関係なく、単に馬鹿ほどvar好き。論理的思考ができない。
516デフォルトの名無しさん
2017/08/23(水) 18:28:16.03ID:Bqf1nBHj517デフォルトの名無しさん
2017/08/23(水) 18:28:57.19ID:5WGHPwEM >>514
これはガチなの?実はアンチパターンで釣られましたねってことはないだろうな?w
FruitFlavor flavor = fruit.GetFlavor();
var flavor = fruit.GetFlavor();
前者の方が読みやすいような気がしてしまう。
今時ならIDEのアシストあるし関係ないか?って気がしないでもないけど
考えるほど分かんなくなる〜
これはガチなの?実はアンチパターンで釣られましたねってことはないだろうな?w
FruitFlavor flavor = fruit.GetFlavor();
var flavor = fruit.GetFlavor();
前者の方が読みやすいような気がしてしまう。
今時ならIDEのアシストあるし関係ないか?って気がしないでもないけど
考えるほど分かんなくなる〜
518デフォルトの名無しさん
2017/08/23(水) 18:30:10.67ID:Bqf1nBHj >>517
MSのOSSリポジトリ覗いてみ
MSのOSSリポジトリ覗いてみ
519デフォルトの名無しさん
2017/08/23(水) 18:42:34.12ID:svL9mCb4 ID:Bqf1nBHj な? 馬鹿だろ。
520デフォルトの名無しさん
2017/08/23(水) 18:53:12.02ID:Bqf1nBHj >>519
なにが?
なにが?
521デフォルトの名無しさん
2017/08/23(水) 18:59:53.02ID:HlA0mWJs C++ 標準委員会のドワンゴ江添は、職務質問の手荷物検査を拒否したら、
警官10人に、現場で1時間半以上、拘束されたらしい
捜査でもない、任意の行政処分なのにw
それで東京都を訴えた
警官10人に、現場で1時間半以上、拘束されたらしい
捜査でもない、任意の行政処分なのにw
それで東京都を訴えた
522デフォルトの名無しさん
2017/08/23(水) 19:04:14.64ID:svL9mCb4 日頃から発言がおかしい勘違い君だからな。
523デフォルトの名無しさん
2017/08/23(水) 19:07:29.72ID:Rd2CDMDC524デフォルトの名無しさん
2017/08/23(水) 19:13:12.59ID:svL9mCb4 ここ数年、どのスレで論破されるとキレて老害連呼しだす人がいたが、
おそらく、ID:Rd2CDMDC は同一人物だろう。
おそらく、ID:Rd2CDMDC は同一人物だろう。
525デフォルトの名無しさん
2017/08/23(水) 19:34:08.26ID:/4+aEImc 右辺にクラス名が現れるときだけauto使う派
FruitFlavor flavor = fruit.GetFlavor()
auto unko = (Unko)GetFuck()
FruitFlavor flavor = fruit.GetFlavor()
auto unko = (Unko)GetFuck()
526片山博文MZ ◆T6xkBnTXz7B0
2017/08/23(水) 19:36:20.34ID:8VCPyRKy 複雑な型は事前にtypedefして使う派。
527デフォルトの名無しさん
2017/08/23(水) 19:36:35.05ID:GX5TSqZj ラムダ式のときもauto使うしなー
528デフォルトの名無しさん
2017/08/23(水) 19:40:35.97ID:GX5TSqZj529デフォルトの名無しさん
2017/08/23(水) 19:57:11.83ID:VR+2stBC 老害は過去のレスには詳しいw
530デフォルトの名無しさん
2017/08/23(水) 20:13:58.21ID:elGjkRqx restrictなんかもそのうちdstのsrc言及有無、srcのdst参照有無を縛る修飾に成るんだろうな
531デフォルトの名無しさん
2017/08/24(木) 05:55:50.39ID:5zDLSTW7532デフォルトの名無しさん
2017/08/24(木) 09:53:17.83ID:FefNdqnS タイプが面倒というPGはコメントも書かないし、単体テストも端折るし、
他の人が書いたソースにバグがあるかどうか真剣に読まない。バグ製造機。
プロジェクトにこういう人が一人でもいると、全体の品質が下がるばかりか
全体の士気まで下がるから厄介。態度の悪さを指摘すると老害連呼のウイルスプログラマ。
他の人が書いたソースにバグがあるかどうか真剣に読まない。バグ製造機。
プロジェクトにこういう人が一人でもいると、全体の品質が下がるばかりか
全体の士気まで下がるから厄介。態度の悪さを指摘すると老害連呼のウイルスプログラマ。
533デフォルトの名無しさん
2017/08/24(木) 18:33:33.36ID:dK94ZXMf >>532
他人のコードのバグを見つけるとか極悪じゃないか?
他人のコードのバグを見つけるとか極悪じゃないか?
534デフォルトの名無しさん
2017/08/24(木) 19:29:06.97ID:++6qy4SY535デフォルトの名無しさん
2017/08/25(金) 14:56:45.51ID:nyf+izFi >>531
ちょっと聞きたいんだけど、
std::vectorをprivateメンバに持つクラスに、vectorのサイズを返すメンバ関数を作る場合、
返値の型はstd::vector::size_typeにするの?
それとも適当にsize_tとかで返しちゃう?
前者だとprivateメンバの型が外側に漏れてる感じが気持ち悪くて嫌だし、
後者は型が違うのが嫌だから、
autoで返しちゃいたいんたけど、殲滅されるべきなのかな
ちょっと聞きたいんだけど、
std::vectorをprivateメンバに持つクラスに、vectorのサイズを返すメンバ関数を作る場合、
返値の型はstd::vector::size_typeにするの?
それとも適当にsize_tとかで返しちゃう?
前者だとprivateメンバの型が外側に漏れてる感じが気持ち悪くて嫌だし、
後者は型が違うのが嫌だから、
autoで返しちゃいたいんたけど、殲滅されるべきなのかな
536デフォルトの名無しさん
2017/08/25(金) 15:13:47.84ID:g+9HiqWa >>535
typedefかusingを使う
typedefかusingを使う
537デフォルトの名無しさん
2017/08/25(金) 17:04:11.95ID:mWX/padL intでいいよ
538デフォルトの名無しさん
2017/08/25(金) 17:08:02.77ID:mWX/padL メンバ関数ごとに型が違うなんて使いづらすぎる
539デフォルトの名無しさん
2017/08/25(金) 17:28:28.06ID:te52+8O3 intは流石にだめだろ
540デフォルトの名無しさん
2017/08/25(金) 17:47:23.39ID:mWX/padL intでサイズ的に十分ならint
541デフォルトの名無しさん
2017/08/25(金) 17:48:31.18ID:mWX/padL >>539
なぜ?
なぜ?
542片山博文MZ ◆T6xkBnTXz7B0
2017/08/25(金) 18:03:18.25ID:M7y+0IYN543デフォルトの名無しさん
2017/08/25(金) 18:06:14.26ID:KodDhcxm size_tを符号なしにした馬鹿は誰だよ。
544デフォルトの名無しさん
2017/08/25(金) 18:15:01.16ID:mWX/padL545デフォルトの名無しさん
2017/08/25(金) 18:19:04.85ID:te52+8O3 >>544
もとからintならあれだが、いちいち別の型であるintにキャストする積極的な理由はなんだ?
もとからintならあれだが、いちいち別の型であるintにキャストする積極的な理由はなんだ?
546デフォルトの名無しさん
2017/08/25(金) 18:20:08.57ID:mWX/padL intをオーバーする心配をするなら
size_tをオーバーする心配も
メモリが足りない心配も
処理が遅すぎて使い物にならない心配も
size_tをオーバーする心配も
メモリが足りない心配も
処理が遅すぎて使い物にならない心配も
547デフォルトの名無しさん
2017/08/25(金) 18:20:36.17ID:te52+8O3 >>546
そうじゃなくてわざわざ型変換する理由は何?
そうじゃなくてわざわざ型変換する理由は何?
548デフォルトの名無しさん
2017/08/25(金) 18:21:19.25ID:mWX/padL 統一
549デフォルトの名無しさん
2017/08/25(金) 18:25:11.29ID:mWX/padL550デフォルトの名無しさん
2017/08/25(金) 18:26:03.20ID:te52+8O3 >>548
何と何を統一するの?
int n = static_cast<int>(v.size());
という面倒な表記?それとも
int n = v.size();
とかいう-Wall で死ぬ表記?
auto n = v.size();
って書かずにキャストをどうしてもしたいのはなぜなのか
何と何を統一するの?
int n = static_cast<int>(v.size());
という面倒な表記?それとも
int n = v.size();
とかいう-Wall で死ぬ表記?
auto n = v.size();
って書かずにキャストをどうしてもしたいのはなぜなのか
551デフォルトの名無しさん
2017/08/25(金) 18:30:18.05ID:mWX/padL クラスを使う人が、内部的にvectorを意識する必要もないし、それようにわざわざ専用の型を使う必要もない
intは他の処理でも多く使われているので、使う側からすれば一番変換が少ない
巨大なデータを扱う処理に関する記述で、size_tで統一してるならそれでも
符号無しで統一してるのも考えにくいけど
intは他の処理でも多く使われているので、使う側からすれば一番変換が少ない
巨大なデータを扱う処理に関する記述で、size_tで統一してるならそれでも
符号無しで統一してるのも考えにくいけど
552デフォルトの名無しさん
2017/08/25(金) 18:35:08.21ID:mWX/padL >>550
そういう面倒なことをクラスのユーザーにさせないため
そういう面倒なことをクラスのユーザーにさせないため
553デフォルトの名無しさん
2017/08/25(金) 18:48:22.24ID:s9vD7wq8 ID:mWX/padLみたいな前近代的なマが早くくたばりますように
554デフォルトの名無しさん
2017/08/25(金) 19:08:25.29ID:te52+8O3 >巨大なデータを扱う処理に関する記述で、size_tで統一してるならそれでも
符号無しで統一してるのも考えにくいけど
STLのsizeはsize_tで統一されてんのにお前が乱してるんだろw
符号無しで統一してるのも考えにくいけど
STLのsizeはsize_tで統一されてんのにお前が乱してるんだろw
555デフォルトの名無しさん
2017/08/25(金) 19:21:24.07ID:g+9HiqWa >そういう面倒なことをクラスのユーザーにさせないため
どんな理屈だよ
vectorをラップしたクラスにat()やoperator[]を設けたらint指定でアクセスするのか
ユーザは負数に成り得る変数を注意しながら使えってか
何のための型だよ
どんな理屈だよ
vectorをラップしたクラスにat()やoperator[]を設けたらint指定でアクセスするのか
ユーザは負数に成り得る変数を注意しながら使えってか
何のための型だよ
556デフォルトの名無しさん
2017/08/25(金) 19:27:33.63ID:wHQvIY8a >vectorをラップしたクラスにat()やoperator[]を設けたらint指定でアクセスするのか
あたりめーだ
真人間ならラップは手段であって目的じゃねーから
>ユーザは負数に成り得る変数を注意しながら使えってか
バカ乙
計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
あたりめーだ
真人間ならラップは手段であって目的じゃねーから
>ユーザは負数に成り得る変数を注意しながら使えってか
バカ乙
計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
557デフォルトの名無しさん
2017/08/25(金) 19:38:23.61ID:mWX/padL558デフォルトの名無しさん
2017/08/25(金) 19:38:41.32ID:g+9HiqWa >>556
>あたりめーだ
>真人間ならラップは手段であって目的じゃねーから
ごめん、意味分からん
>計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
だから、わざわざvector::size_typeなものをintに変換する必要がないじゃないの
0からmax_size()までの範囲なんだからさ
>あたりめーだ
>真人間ならラップは手段であって目的じゃねーから
ごめん、意味分からん
>計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
だから、わざわざvector::size_typeなものをintに変換する必要がないじゃないの
0からmax_size()までの範囲なんだからさ
559デフォルトの名無しさん
2017/08/25(金) 19:40:58.71ID:g+9HiqWa >>557
だからtypedefやusingを使うって話だよ
だからtypedefやusingを使うって話だよ
560デフォルトの名無しさん
2017/08/25(金) 19:41:24.55ID:mWX/padL vectorから他の実装に変えたらクラスの仕様も変えるのか?
561デフォルトの名無しさん
2017/08/25(金) 19:42:44.43ID:mWX/padL562デフォルトの名無しさん
2017/08/25(金) 19:47:10.01ID:mWX/padL クラスやメンバ関数ごとに型を定義したら、
それらの数値を複数用いて演算した結果はどうすんの?
まさかauto?
それらの数値を複数用いて演算した結果はどうすんの?
まさかauto?
563デフォルトの名無しさん
2017/08/25(金) 19:50:17.50ID:mWX/padL クラスが値に関して責任を持つ
当たり前
クラスが値や型に対して責任を持たずにただ値をスルーパスするだけの糞クラスなんかは
ローカルで個人で使う物だけにとどめておきな
当たり前
クラスが値や型に対して責任を持たずにただ値をスルーパスするだけの糞クラスなんかは
ローカルで個人で使う物だけにとどめておきな
564デフォルトの名無しさん
2017/08/25(金) 19:51:00.23ID:mWX/padL ただメールを転送するだけの役に立たない糞上司と同じ
565デフォルトの名無しさん
2017/08/25(金) 20:00:01.80ID:g+9HiqWa566デフォルトの名無しさん
2017/08/25(金) 20:14:31.61ID:mWX/padL >>565
vector以外のデータは無いっていう前提?
または、クラスで扱うサイズをすべてそれで統一?
仮にそうだとして、
じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
vector以外のデータは無いっていう前提?
または、クラスで扱うサイズをすべてそれで統一?
仮にそうだとして、
じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
567デフォルトの名無しさん
2017/08/25(金) 20:16:04.43ID:mWX/padL 使う側に考えさせる
使う側の手間を考えない実装
使う側の手間を考えない実装
568デフォルトの名無しさん
2017/08/25(金) 20:18:17.34ID:mWX/padL vectorをそのまま継承した程度のクラスなら、
当然vectorのインターフェースを保つべきと思うよ
今回はvectorはただのデータのひとつ
当然vectorのインターフェースを保つべきと思うよ
今回はvectorはただのデータのひとつ
569デフォルトの名無しさん
2017/08/25(金) 20:19:47.38ID:mWX/padL 実装上、たまたまvectorを使っただけ
もしかしたら変えるかも
といった、ごく普通のクラス設計だと仮定した場合の話
もしかしたら変えるかも
といった、ごく普通のクラス設計だと仮定した場合の話
570デフォルトの名無しさん
2017/08/25(金) 20:26:53.78ID:cjqQUnES てか普通コンテナのサイズはsize_typeでとるだろ
別のクラスのsize_typeもsize_typeで取れ
勝手にintにキャストしてwarningまみれにすんな死ね
別のクラスのsize_typeもsize_typeで取れ
勝手にintにキャストしてwarningまみれにすんな死ね
571デフォルトの名無しさん
2017/08/25(金) 20:29:55.07ID:mWX/padL コンテナはただのクラス内のデータのひとつ
内部の設計事情を外部に出す必要はない
内部の設計事情を外部に出す必要はない
572デフォルトの名無しさん
2017/08/25(金) 20:32:07.80ID:mWX/padL573デフォルトの名無しさん
2017/08/25(金) 20:32:27.95ID:g+9HiqWa >>566
>vector以外のデータは無いっていう前提?
実装を替える必要があるってのは後で作り変えるって意味?それって設計の問題で関係なくね?
静的動的問わずポリモーフィズムするって意味なら最初からそういった設計をするでしょ
今回の話はvectorをラップしているクラスの話でしょ、何で関係ない話を持ち込むの?
>または、クラスで扱うサイズをすべてそれで統一?
size_typeで統一されるならそれでイイんじゃないの?君の言うintに統一と何ら変わらない
それなら内包しているvectorと同じsize_typeを使った方のが余計な記述も減るしバグも減る
>じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
それって君の言うint統一でも同じじゃね?
何か話がどんどんズレていない?
>vector以外のデータは無いっていう前提?
実装を替える必要があるってのは後で作り変えるって意味?それって設計の問題で関係なくね?
静的動的問わずポリモーフィズムするって意味なら最初からそういった設計をするでしょ
今回の話はvectorをラップしているクラスの話でしょ、何で関係ない話を持ち込むの?
>または、クラスで扱うサイズをすべてそれで統一?
size_typeで統一されるならそれでイイんじゃないの?君の言うintに統一と何ら変わらない
それなら内包しているvectorと同じsize_typeを使った方のが余計な記述も減るしバグも減る
>じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
それって君の言うint統一でも同じじゃね?
何か話がどんどんズレていない?
574デフォルトの名無しさん
2017/08/25(金) 20:33:01.08ID:cjqQUnES お前はそれでいいんじゃないか?
intで出せばいいじゃん
他のコンテナと整合取れないから使われないだけで、法に触れてるわけでもないし
intで出せばいいじゃん
他のコンテナと整合取れないから使われないだけで、法に触れてるわけでもないし
575デフォルトの名無しさん
2017/08/25(金) 20:37:36.90ID:mWX/padL576デフォルトの名無しさん
2017/08/25(金) 20:51:59.32ID:g+9HiqWa577デフォルトの名無しさん
2017/08/25(金) 21:41:43.35ID:KodDhcxm stlが糞ならautoも糞。これだけ。
578デフォルトの名無しさん
2017/08/25(金) 22:47:35.80ID:Eu3G8mvr auto g() {
// auto最高や
}
// auto最高や
}
579片山博文MZ ◆T6xkBnTXz7B0
2017/08/25(金) 22:49:29.48ID:M7y+0IYN ご利用は計画的に
580デフォルトの名無しさん
2017/08/25(金) 23:42:52.91ID:Eu3G8mvr auto 計画通り() -> auto {}
581はちみつ餃子 ◆8X2XSCHEME
2017/08/26(土) 00:15:55.89ID:pK4duJs2 int でいーんと違うかな? (違う)
582デフォルトの名無しさん
2017/08/26(土) 00:18:45.88ID:m69mKCvs この強烈な加齢臭
昭和生まれはお帰りください
昭和生まれはお帰りください
583デフォルトの名無しさん
2017/08/26(土) 02:07:31.06ID:YVaPdeR/ 平成もあと数年だが在位64年は無茶苦茶長いよな
584デフォルトの名無しさん
2017/08/26(土) 02:50:01.47ID:h4RGPr+8 C++ Core Guidelines より
ES.106: Don't try to avoid negative values by using unsigned
https://github.com/isocpp/CppCoreGuidelines/blob/v0.8/CppCoreGuidelines.md#Res-nonnegative
ES.107: Don't use unsigned for subscripts
https://github.com/isocpp/CppCoreGuidelines/blob/v0.8/CppCoreGuidelines.md#Res-subscripts
ES.106: Don't try to avoid negative values by using unsigned
https://github.com/isocpp/CppCoreGuidelines/blob/v0.8/CppCoreGuidelines.md#Res-nonnegative
ES.107: Don't use unsigned for subscripts
https://github.com/isocpp/CppCoreGuidelines/blob/v0.8/CppCoreGuidelines.md#Res-subscripts
585デフォルトの名無しさん
2017/08/26(土) 11:13:16.50ID:mPuoCwlf ↑便所の落書き
586デフォルトの名無しさん
2017/08/26(土) 18:00:34.61ID:WfLpSPQA size_tって何だっけ?
最近c#脳なので忘れた
最近c#脳なので忘れた
587デフォルトの名無しさん
2017/08/26(土) 22:37:42.94ID:XR3UemNV きっと何かのサイズだろう
rsize_tが出てきたあたりで規格を読むのがめんどくさくなった
rsize_tが出てきたあたりで規格を読むのがめんどくさくなった
588デフォルトの名無しさん
2017/08/26(土) 23:05:29.50ID:4huu8k7X unsigned int
589デフォルトの名無しさん
2017/08/26(土) 23:27:40.18ID:gTZoGI5S xmlだったかloggerだったかのヘッダオンリーライブラリでsize_t絡みのワーニングを
消そうとintをsize_tに変更すると別の場所にワーニングが出て、そこも直すとまた別
の場所にの繰り返しで使うのやめたことがあった。
消そうとintをsize_tに変更すると別の場所にワーニングが出て、そこも直すとまた別
の場所にの繰り返しで使うのやめたことがあった。
590デフォルトの名無しさん
2017/08/28(月) 10:50:45.03ID:D1yS1ByC インクルードディレクトリの優先順位変えたらうまくいったり
591デフォルトの名無しさん
2017/09/02(土) 17:05:03.82ID:Vkplowcj http://opencv.jp/cookbook/opencv_img.html#image-resize
ここのソースコードをコピペしてコンパイルしようとしたのですが
関数 `cv::Mat::release()' 内:
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x47): `cv::Mat::deallocate()' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
このようなエラー文が出てしまいます
使っているOSはdebian stretchです
/usr/include/opencv2には必要なファイルはありました
コンパイルオプションを色々調べて試したのですがうまく行きませんでした
どのようにコンパイルすればいいのでしょうか
ここのソースコードをコピペしてコンパイルしようとしたのですが
関数 `cv::Mat::release()' 内:
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x47): `cv::Mat::deallocate()' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
このようなエラー文が出てしまいます
使っているOSはdebian stretchです
/usr/include/opencv2には必要なファイルはありました
コンパイルオプションを色々調べて試したのですがうまく行きませんでした
どのようにコンパイルすればいいのでしょうか
592デフォルトの名無しさん
2017/09/02(土) 17:46:32.93ID:Ti9M8tGK593デフォルトの名無しさん
2017/09/02(土) 17:57:11.82ID:Vkplowcj 解決しました
すみませんでした
ライブラリのリンク方法をきちんと理解してなかったみたいです
すみませんでした
ライブラリのリンク方法をきちんと理解してなかったみたいです
594デフォルトの名無しさん
2017/09/03(日) 01:01:10.24ID:HP/Rq3By もちろん、具体的にどうやって解決したかは書きません
595デフォルトの名無しさん
2017/09/03(日) 02:48:50.72ID:hOhj+ods596デフォルトの名無しさん
2017/09/03(日) 23:14:47.80ID:SkKZ7pGs g++はソースでライブラリを指定できないの?
597デフォルトの名無しさん
2017/09/04(月) 09:53:17.44ID:MN7/X5Lc ソースでリンクとかvisual studioかよ
598デフォルトの名無しさん
2017/09/05(火) 17:26:13.07ID:SopTNKp+ 質問です
DLLの中で宣言したvectorを呼び出し側のEXEから使うのにスマートな方法は
どんな方法がありますか?
DLLの中で宣言したvectorを呼び出し側のEXEから使うのにスマートな方法は
どんな方法がありますか?
599デフォルトの名無しさん
2017/09/05(火) 17:29:23.60ID:b+ZxWLYj class CFirstClass {
public: virtual const char* GetString() const = 0;
};
class CNinja : public CFirstClass {
public: virtual ~CNinja();
virtual const char* GetString() const;
};
class CMaster : public CFirstClass {
public: virtual ~CMaster();
virtual const char* GetString() const;
};
class CJohnin : public CNinja, public CMaster {
public: virtual ~CJohnin();
};
CNinja::~CNinja(){ }
CMaster::~CMaster(){ }
CJohnin::~CJohnin(){ }
const char* CNinja::GetString() const { return "忍者"; }
const char* CMaster::GetString() const { return "マスター"; }
int main() {
CJohnin johnin;
cout << dynamic_cast<CNinja&>(johnin).GetString() << endl;
cout << johnin.CMaster::GetString() << endl;
return 0;
}
GetStringの戻り値charから*を消したらエラーになるんですが、
これがポインタじゃなければならない理由は何でしょうか?
public: virtual const char* GetString() const = 0;
};
class CNinja : public CFirstClass {
public: virtual ~CNinja();
virtual const char* GetString() const;
};
class CMaster : public CFirstClass {
public: virtual ~CMaster();
virtual const char* GetString() const;
};
class CJohnin : public CNinja, public CMaster {
public: virtual ~CJohnin();
};
CNinja::~CNinja(){ }
CMaster::~CMaster(){ }
CJohnin::~CJohnin(){ }
const char* CNinja::GetString() const { return "忍者"; }
const char* CMaster::GetString() const { return "マスター"; }
int main() {
CJohnin johnin;
cout << dynamic_cast<CNinja&>(johnin).GetString() << endl;
cout << johnin.CMaster::GetString() << endl;
return 0;
}
GetStringの戻り値charから*を消したらエラーになるんですが、
これがポインタじゃなければならない理由は何でしょうか?
600片山博文MZ ◆T6xkBnTXz7B0
2017/09/05(火) 18:18:30.94ID:HWiXORhG >>599
文字と文字列は違う。C文字列は、ヌル文字で終わる文字配列、または文字の並びへのポインタ。
文字と文字列は違う。C文字列は、ヌル文字で終わる文字配列、または文字の並びへのポインタ。
601デフォルトの名無しさん
2017/09/05(火) 18:37:05.61ID:WkIFt9xI * は、ポインタ
まさか君は、ポインタを知らないのか?w
まさか君は、ポインタを知らないのか?w
602デフォルトの名無しさん
2017/09/05(火) 18:37:39.05ID:b+ZxWLYj603デフォルトの名無しさん
2017/09/05(火) 18:43:08.96ID:2NcRAW/h605デフォルトの名無しさん
2017/09/05(火) 18:50:39.70ID:6fI5wuGG そして リテラルの "文字列" って static で保持しなくていいの? までテンプレ
606デフォルトの名無しさん
2017/09/05(火) 19:50:20.12ID:duOUbFWD607デフォルトの名無しさん
2017/09/05(火) 20:01:40.54ID:D99g/mXF >>603
片山先生になんて失礼な態度なんだ
片山先生になんて失礼な態度なんだ
608片山博文MZ ◆T6xkBnTXz7B0
2017/09/05(火) 20:08:04.50ID:HWiXORhG >>607
先頭アドレスと言う方が正確だよね。先生と呼ぶのはやめようね。個人崇拝禁止ってルールだから。
先頭アドレスと言う方が正確だよね。先生と呼ぶのはやめようね。個人崇拝禁止ってルールだから。
609デフォルトの名無しさん
2017/09/05(火) 22:30:28.03ID:NIuXE25q 片山先生www
610デフォルトの名無しさん
2017/09/05(火) 22:59:11.90ID:nPfvfHCk 文字列リテラルがchar*に勝手に変換されてるのかよ。糞言語だな。
611片山博文MZ ◆T6xkBnTXz7B0
2017/09/05(火) 23:20:23.43ID:HWiXORhG 戦国武将を崇拝する事は人●しを崇拝する事になるし、ハッカーを崇拝する事はハッキングを崇拝する事になる。
個人崇拝にとらわれず、正しい道を歩まねばならない。
個人崇拝にとらわれず、正しい道を歩まねばならない。
612デフォルトの名無しさん
2017/09/05(火) 23:28:12.79ID:j8EMa+Cj >文字列リテラルがchar*に勝手に変換
そんなクソ言語はCだけ
そんなクソ言語はCだけ
613デフォルトの名無しさん
2017/09/05(火) 23:58:54.60ID:duOUbFWD >>612
char const*なりconst char*ならおk?
char const*なりconst char*ならおk?
615613
2017/09/06(水) 00:06:53.44ID:lX1AC/o9 日が変わったのね
領海いや了解です
まぁ歴史的理由とは言えクソではある
ROM化するときもどっちだよ?ってな話にはなるね
領海いや了解です
まぁ歴史的理由とは言えクソではある
ROM化するときもどっちだよ?ってな話にはなるね
616デフォルトの名無しさん
2017/09/06(水) 00:18:48.47ID:6Ek+YiOk617デフォルトの名無しさん
2017/09/06(水) 06:42:27.45ID:lz1Lh31S それのどの辺が欠陥?
618デフォルトの名無しさん
2017/09/06(水) 09:50:26.00ID:3N8FGDgc char hoge[] = "samurai";
const char hage[] = "harakiri";
無問題
const char hage[] = "harakiri";
無問題
619デフォルトの名無しさん
2017/09/07(木) 22:47:37.15ID:jsOYkjhe ↑どうしようもないバカ
620デフォルトの名無しさん
2017/09/08(金) 00:52:21.25ID:vi4Hog1L これから勉強しようと調べたら、C#やってたのに、見慣れない文法が俺的に意味不明過ぎて草
取り敢えず書かないとわかんねーなw
取り敢えず書かないとわかんねーなw
621デフォルトの名無しさん
2017/09/08(金) 00:55:11.66ID:z9zmzhsM https://ideone.com/y8mZJo
初心者です
クラスのメンバ変数に別のクラスを持つ場合、
実体かポインタのどちらで持った方が良いのでしょうか?
Data1(別のクラス)、Class1(実体で持つ)、Class2(ポインタで持つ)がその部分です
Class2の方がサイズが小さかったのでこちらの方が良いのですか?
それとも、使う側がメモリ使用量を削減したければ、
使う側がmain関数の変数dやeのような使い方をしてくれるだろう、
ということを期待して、余計なことはせずにClass1のようにするべきですか?
また、ポインタで持つ場合、Data2とClass3のような極端な場合
(実体で持った場合とポインタで持った場合の違いが4バイトしかない)
でもポインタで持つべきですか?
初心者です
クラスのメンバ変数に別のクラスを持つ場合、
実体かポインタのどちらで持った方が良いのでしょうか?
Data1(別のクラス)、Class1(実体で持つ)、Class2(ポインタで持つ)がその部分です
Class2の方がサイズが小さかったのでこちらの方が良いのですか?
それとも、使う側がメモリ使用量を削減したければ、
使う側がmain関数の変数dやeのような使い方をしてくれるだろう、
ということを期待して、余計なことはせずにClass1のようにするべきですか?
また、ポインタで持つ場合、Data2とClass3のような極端な場合
(実体で持った場合とポインタで持った場合の違いが4バイトしかない)
でもポインタで持つべきですか?
622デフォルトの名無しさん
2017/09/08(金) 01:42:32.16ID:T0c8eZQl この場合は実体で持ったほうがいいと思う
ポインタのほうがサイズが小さいって言ってるけど、あくまでも型のサイズであって使ってるメモリはポインタのほうが多くなってるよ
データがデータを持つクラスと同時に生成され同時に消えるものなら実体のほうが楽だし
ポインタのほうがサイズが小さいって言ってるけど、あくまでも型のサイズであって使ってるメモリはポインタのほうが多くなってるよ
データがデータを持つクラスと同時に生成され同時に消えるものなら実体のほうが楽だし
623デフォルトの名無しさん
2017/09/08(金) 01:54:33.88ID:3vC4jpKo 既に回答があるけど
実体で持つべきかポインタで持つべきかはもっと複雑な要因で決まる
C++は他の言語と違ってクラスのインスタンスを実体で持てる変わった言語で
それはそれで便利だから基本的には実体で持って構わない
理由はトラブルが無いから
ポインタで持つ場合は、他所から与えられたり、動的に差し変わったり、他所と共有したり
ややこしいことがしたい場合はポインタで持つ
一応「ややこしいこと」の中に君が求めている「サイズを減らしたい」も含まれる
例えば巨大な画像データなどを複数のクラスで共有してメモリ使用量を削減したい場合など
そのようなつもりがないのであれば、実体で持って構わない
実体で持つべきかポインタで持つべきかはもっと複雑な要因で決まる
C++は他の言語と違ってクラスのインスタンスを実体で持てる変わった言語で
それはそれで便利だから基本的には実体で持って構わない
理由はトラブルが無いから
ポインタで持つ場合は、他所から与えられたり、動的に差し変わったり、他所と共有したり
ややこしいことがしたい場合はポインタで持つ
一応「ややこしいこと」の中に君が求めている「サイズを減らしたい」も含まれる
例えば巨大な画像データなどを複数のクラスで共有してメモリ使用量を削減したい場合など
そのようなつもりがないのであれば、実体で持って構わない
624はちみつ餃子 ◆8X2XSCHEME
2017/09/08(金) 04:08:54.89ID:lqryTDOd まあ、まずは意味的な妥当性を考えるべきかな。
よほど大量にオブジェクトを作るのでなければ
少々のメモリ使用量の差なんてどうってことない。
そのクラスで定義したい概念に一致してるかが重要だろう。
よほど大量にオブジェクトを作るのでなければ
少々のメモリ使用量の差なんてどうってことない。
そのクラスで定義したい概念に一致してるかが重要だろう。
625デフォルトの名無しさん
2017/09/08(金) 22:03:27.48ID:TiXktDhC626デフォルトの名無しさん
2017/09/09(土) 00:41:38.80ID:hNauHrr/ みなさんありがとうございます
これからは状況に合わせてどれが適切かどうか考えて実装します
今回(621のコードではない)は、621のコードのようにサイズも小さく、
他のクラスと共有するようなデータを持っているクラスでもなく、
そのメンバを所有しているような概念だったので、
メンバ変数は実体で持つことにしました
これからは状況に合わせてどれが適切かどうか考えて実装します
今回(621のコードではない)は、621のコードのようにサイズも小さく、
他のクラスと共有するようなデータを持っているクラスでもなく、
そのメンバを所有しているような概念だったので、
メンバ変数は実体で持つことにしました
627デフォルトの名無しさん
2017/09/09(土) 04:29:22.24ID:gq9mYezw ポインタで持つと、プログラミングが難しい
ただし、後でインスタンスが作られる場合は、ポインタで持つ。
外側・内側のインスタンスの、寿命が異なる場合
ただし、後でインスタンスが作られる場合は、ポインタで持つ。
外側・内側のインスタンスの、寿命が異なる場合
628デフォルトの名無しさん
2017/09/09(土) 04:30:46.35ID:iRgkNuJM アドレスの演算しないなら参照でいいじゃん。
629デフォルトの名無しさん
2017/09/09(土) 08:33:28.36ID:DK1wXlQ9 生き死にのタイミングが別・ちょっとずれて欲しい
そういう場合はポインタしかやりよがない?かな?
そういう場合はポインタしかやりよがない?かな?
630デフォルトの名無しさん
2017/09/09(土) 09:57:17.57ID:IRAdfO5M 寿命のタイミングが違うときポインタで持たせるって、
ポインタをnullで初期化してsetterつけるってこと?
そんな糞クラス絶対使わないわ…
ポインタをnullで初期化してsetterつけるってこと?
そんな糞クラス絶対使わないわ…
631デフォルトの名無しさん
2017/09/09(土) 11:41:44.39ID:bRNSjth4 ↑バカ
>ポインタをnullで初期化してsetterつけるってこと?
>ポインタをnullで初期化してsetterつけるってこと?
632デフォルトの名無しさん
2017/09/09(土) 11:43:16.35ID:3oRTPGwk 寝起きで意味不明ですた
633デフォルトの名無しさん
2017/09/09(土) 11:43:45.11ID:3oRTPGwk 誤爆
634デフォルトの名無しさん
2017/09/09(土) 12:06:21.98ID:arXtWn5o ボインター使わなくてもC++が組めるのに安堵した
635デフォルトの名無しさん
2017/09/09(土) 12:15:47.61ID:OV/mK/gQ C/C++の場合、初心者の方がポインタが好きで、多用する傾向があるよね
636デフォルトの名無しさん
2017/09/09(土) 12:36:18.85ID:arXtWn5o 書店やネットで調べたらポインタの話題が必ず出るし、メモリリークになるから、ポインタ使わないと言語が使えません的な雰囲気があった
637デフォルトの名無しさん
2017/09/09(土) 12:57:49.50ID:X7OoIJoK そこでメモリポインタですよ
638デフォルトの名無しさん
2017/09/09(土) 12:58:17.28ID:D8z5xRC+ 低レベルな処理はポインタ必須
上しか書かないなら生で使わないことも可能
上しか書かないなら生で使わないことも可能
639デフォルトの名無しさん
2017/09/09(土) 13:07:28.29ID:4g0rauvm >>638
いつも考えるんですけれども低レイヤーでもポインタを使わないことは可能なんでしょうか?ポインタを使わないけれども低レイヤまで対応している言語はなんでしょうか
いつも考えるんですけれども低レイヤーでもポインタを使わないことは可能なんでしょうか?ポインタを使わないけれども低レイヤまで対応している言語はなんでしょうか
640デフォルトの名無しさん
2017/09/09(土) 13:34:55.85ID:ayit12uD いつも思うのだがポインタ恐怖症って何なのか?
641デフォルトの名無しさん
2017/09/09(土) 13:55:13.28ID:xEPuJyU1 低レベルな処理でポインタが便利と言われるのはなぜか
言葉で語るのは大変なのでコードで語ろう
hoge *p = (hoge)nanika_no_memory_block;
p->piyo = 100;
これが出来る言語は、あまりない
言葉で語るのは大変なのでコードで語ろう
hoge *p = (hoge)nanika_no_memory_block;
p->piyo = 100;
これが出来る言語は、あまりない
642デフォルトの名無しさん
2017/09/09(土) 14:50:04.88ID:4g0rauvm >>641
うわさの rust ではどうでしょうか?
うわさの rust ではどうでしょうか?
643はちみつ餃子 ◆8X2XSCHEME
2017/09/09(土) 15:46:41.32ID:yY9TM3ez 低水準に寄り過ぎると「アドレスを表す整数」だったりして、
(ポインタ相当の操作は可能なものの、)
言語としてのサポートが全然なかったりするので、
ポインタってのは妥当な落としどころだよなー
(ポインタ相当の操作は可能なものの、)
言語としてのサポートが全然なかったりするので、
ポインタってのは妥当な落としどころだよなー
644デフォルトの名無しさん
2017/09/09(土) 18:56:49.96ID:SQs0JGyk >>641
Ada もできたはず
Ada もできたはず
645デフォルトの名無しさん
2017/09/09(土) 19:48:57.56ID:xEPuJyU1 >>641はちょっとコードをミスってしまった
訂正するほどでもないと思うが一応直しておく
hoge *p = (hoge *)nanika_no_memory_block;
p->piyo = 100;
C形式のAPIとの互換性のためにアドレス値が扱える言語は多いが
>>643の言う通り、アドレスを表す整数、ってだけの場合も多い
他の高級言語はオブジェクトに色々な機能を持たせるために
複雑なメモリレイアウトをしているものなので
適当なメモリブロックのアドレスを適当にキャストして
まるで、ネイディブオブジェクトであるかのように扱う、ということが出来にくい
(C++ですら仮想関数テーブルを持っているとアウト)
なので、素のメモリブロックを扱う場合はC/C++のポインタが便利
C言語はナカナカにツボを押さえた設計になっている
訂正するほどでもないと思うが一応直しておく
hoge *p = (hoge *)nanika_no_memory_block;
p->piyo = 100;
C形式のAPIとの互換性のためにアドレス値が扱える言語は多いが
>>643の言う通り、アドレスを表す整数、ってだけの場合も多い
他の高級言語はオブジェクトに色々な機能を持たせるために
複雑なメモリレイアウトをしているものなので
適当なメモリブロックのアドレスを適当にキャストして
まるで、ネイディブオブジェクトであるかのように扱う、ということが出来にくい
(C++ですら仮想関数テーブルを持っているとアウト)
なので、素のメモリブロックを扱う場合はC/C++のポインタが便利
C言語はナカナカにツボを押さえた設計になっている
646デフォルトの名無しさん
2017/09/10(日) 03:56:34.58ID:gLmtVUjO int main(void) {
int a, b, c;
char x[100] = { NULL };
while (1) {
〜処理〜
printf("終了します。何かボタンを押してください\n");
scanf("%s", x);
if (x != NULL)
break;
else if("\n")
break;
}
return 0;
}
ループを抜ける処理でこんな感じで書いてるんですが
これだと何らかの文字列+エンターキーを押さないと抜けれないんですよね・・・
printf("終了します。何かボタンを押してください\n");
のあとエンターキーを押すだけでもループ終了して終わる方法はないですか?
int a, b, c;
char x[100] = { NULL };
while (1) {
〜処理〜
printf("終了します。何かボタンを押してください\n");
scanf("%s", x);
if (x != NULL)
break;
else if("\n")
break;
}
return 0;
}
ループを抜ける処理でこんな感じで書いてるんですが
これだと何らかの文字列+エンターキーを押さないと抜けれないんですよね・・・
printf("終了します。何かボタンを押してください\n");
のあとエンターキーを押すだけでもループ終了して終わる方法はないですか?
647デフォルトの名無しさん
2017/09/10(日) 04:09:14.61ID:w2UiNhNS getchar();
648デフォルトの名無しさん
2017/09/10(日) 13:06:33.76ID:3KJHgwTr fgetsで1行読んで、余分な入力ごと読み捨て。
649デフォルトの名無しさん
2017/09/10(日) 13:24:31.62ID:tCo7CGq4 > char x[100] = { NULL };
> if (x != NULL)
Qの炎上学習法か何か?
> if (x != NULL)
Qの炎上学習法か何か?
650デフォルトの名無しさん
2017/09/10(日) 13:50:18.25ID:rGvjr77j Q は C++ メインでやってるよ
http://mevius.2ch.net/test/read.cgi/tech/1434079972/
http://mevius.2ch.net/test/read.cgi/tech/1434079972/
651デフォルトの名無しさん
2017/09/10(日) 14:16:47.62ID:tCo7CGq4 >Q は C++ メインでやってるよ
自分のことQっていうの、キモいぞ
自分のことQっていうの、キモいぞ
652デフォルトの名無しさん
2017/09/14(木) 18:48:11.80ID:aF7eMqZx c言語で書かれた稼働しているプログラムの中のある変数のアドレスを取得したいです
プログラムを一切変更しないでこれを実現させることはできるのでしょうか?
プログラムを一切変更しないでこれを実現させることはできるのでしょうか?
654デフォルトの名無しさん
2017/09/14(木) 18:51:23.24ID:QiPMm0Hr 最適化でレジスタに割りあたっちゃった変数はアドレスとれない
655デフォルトの名無しさん
2017/09/14(木) 18:59:38.50ID:aF7eMqZx656デフォルトの名無しさん
2017/09/14(木) 19:24:54.84ID:N62cmPAo アドレスを取る理由は?
ほんとはなにしたいの?
ほんとはなにしたいの?
657デフォルトの名無しさん
2017/09/14(木) 19:27:33.65ID:T7H5P+6p そもそも自動変数なら>>654の話もあるし複数回呼ばれる関数なら呼ばれる度に異なるかもしれない
更に再帰とかマルチスレッドなら同時に複数存在してるかもしれない
更に再帰とかマルチスレッドなら同時に複数存在してるかもしれない
658デフォルトの名無しさん
2017/09/14(木) 20:49:36.03ID:aF7eMqZx ある関数ポインタに任意の関数を代入して実行させたいのですが
プログラム内の変数同士の相対的なアドレスを調べるというのも難しいのでしょうか?
プログラム内の変数同士の相対的なアドレスを調べるというのも難しいのでしょうか?
659片山博文MZ ◆T6xkBnTXz7B0
2017/09/14(木) 20:52:51.63ID:qDyTdV0Q >>658
ソースもデバッグ情報もなければ、逆コンパイラを使ってアドレスを調べるくらいしか思い付かない。
ソースもデバッグ情報もなければ、逆コンパイラを使ってアドレスを調べるくらいしか思い付かない。
660デフォルトの名無しさん
2017/09/14(木) 21:10:46.05ID:aF7eMqZx 自己解決しました
お騒がせしてすみません
お騒がせしてすみません
661デフォルトの名無しさん
2017/09/14(木) 22:09:02.75ID:eKK5ja5H 関数内にあるクラス定義の型だけ違う関数ってどう作れば良いんですか?
void Command::add()
{
Command cm;->これをCommand2 cm;にしたい
以降処理を記載
}
初歩的な質問ですいません。
同じ関数を何個も作る必要があり手間です><
ロベールとかを見ても仮想関数とかアップキャストとか継承とかオーバーライドとかひと通り見ましたがわかりません。
void Command::add()
{
Command cm;->これをCommand2 cm;にしたい
以降処理を記載
}
初歩的な質問ですいません。
同じ関数を何個も作る必要があり手間です><
ロベールとかを見ても仮想関数とかアップキャストとか継承とかオーバーライドとかひと通り見ましたがわかりません。
662デフォルトの名無しさん
2017/09/14(木) 22:17:41.81ID:vjSz//mI 関数テンプレート
マクロ
defineして#include
マクロ
defineして#include
663デフォルトの名無しさん
2017/09/14(木) 23:51:59.63ID:eKK5ja5H 問題解決しました。
ありがとうございます。
ありがとうございます。
664デフォルトの名無しさん
2017/09/15(金) 02:25:25.95ID:z+aMp6by >変数同士の相対的なアドレス
引き算してはならない。ただし、同一の配列の要素どうしなら、引き算は、意味ある
引き算してはならない。ただし、同一の配列の要素どうしなら、引き算は、意味ある
665デフォルトの名無しさん
2017/09/15(金) 02:39:59.15ID:NePdqYQx 何かをハッキングしようとしてますね。
666デフォルトの名無しさん
2017/09/15(金) 05:27:31.76ID:qOhstmGW staticなメンバしかないクラスがあるんですけど
これもうnamespaceでいいですよね?
これもうnamespaceでいいですよね?
667デフォルトの名無しさん
2017/09/15(金) 09:53:35.90ID:Rd6409Qg いいよ
668デフォルトの名無しさん
2017/09/15(金) 12:08:47.50ID:LbVH6Dx6 ADLとかとの兼ね合い
669デフォルトの名無しさん
2017/09/15(金) 17:45:57.17ID:s+L1DjZB670デフォルトの名無しさん
2017/09/16(土) 23:02:46.17ID:JcByp9p4671デフォルトの名無しさん
2017/09/16(土) 23:11:51.68ID:F2zb0zkw C/C++的にはダメ
672はちみつ餃子 ◆8X2XSCHEME
2017/09/17(日) 01:58:27.90ID:jnHDU3kL まあ動いちゃうときも多いと思うけど、やっちゃ駄目だよー
673デフォルトの名無しさん
2017/09/17(日) 02:12:21.90ID:2kxiy1Rb ダメな例出して
674デフォルトの名無しさん
2017/09/17(日) 05:58:54.94ID:lvKagVu8675デフォルトの名無しさん
2017/09/17(日) 06:01:41.65ID:2kxiy1Rb auto使いはやっぱり馬鹿だった。
676デフォルトの名無しさん
2017/09/17(日) 06:19:33.65ID:lvKagVu8 バカとしか書けないのかよ w
677デフォルトの名無しさん
2017/09/17(日) 12:32:24.59ID:/dX18QMc >>671
だめなこんきょ出して
だめなこんきょ出して
678デフォルトの名無しさん
2017/09/17(日) 12:49:17.96ID:lvKagVu8 >>677
規格嫁
規格嫁
679デフォルトの名無しさん
2017/09/17(日) 12:51:42.31ID:/dX18QMc 出せねーんだろププ
auto使いはやっぱり馬鹿
auto使いはやっぱり馬鹿
680デフォルトの名無しさん
2017/09/17(日) 13:02:11.76ID:ZH0tEj4R 自分だけはバカじゃないという前提
681デフォルトの名無しさん
2017/09/17(日) 13:31:56.70ID:/dX18QMc お、自分のばかを自覚したんだね
はいよくできました
はいよくできました
682デフォルトの名無しさん
2017/09/17(日) 14:23:53.26ID:dpOLvFr5 性格超悪そう
683デフォルトの名無しさん
2017/09/17(日) 18:01:33.39ID:dpEZdIyz ここで問題です。
struct A { int x1, x2; } a;
auto d = &a.x1 - &a.x2;
これは規格違反でしょうか
struct A { int x1, x2; } a;
auto d = &a.x1 - &a.x2;
これは規格違反でしょうか
684デフォルトの名無しさん
2017/09/17(日) 19:10:18.83ID:iyMogwhx #include <stddef.h>
offsetof(type, member-designator);
offsetof(type, member-designator);
685デフォルトの名無しさん
2017/09/17(日) 20:31:22.48ID:e7NF75Gx 変数内のレイアウトと 異なる変数のギャップと同じに取り扱っていいものなのかな
686デフォルトの名無しさん
2017/09/17(日) 20:47:23.92ID:7AbJQaK5 現行規格の5.7/p6では未定義動作となっていて
他に許可する記述は見つけられなかった
他に許可する記述は見つけられなかった
687デフォルトの名無しさん
2017/09/17(日) 22:50:49.91ID:lvKagVu8 規格も読めないアホにつける薬はないってことかな w
688デフォルトの名無しさん
2017/09/18(月) 04:40:38.13ID:v1M3pcaa こういうアホな話になるのはauto使いはscript kiddie脳だから。
処理系に対する理解が皆無。
処理系に対する理解が皆無。
689デフォルトの名無しさん
2017/09/18(月) 05:41:38.61ID:eqWC6Q8G 具体的な指摘もできないアホ乙
690デフォルトの名無しさん
2017/09/18(月) 22:38:10.49ID:NO4WPNQ6691デフォルトの名無しさん
2017/09/19(火) 01:28:21.18ID:31UnpjJ8 な? auto使いは馬鹿だろ。
692デフォルトの名無しさん
2017/09/26(火) 01:34:34.23ID:piJXswiP693デフォルトの名無しさん
2017/09/26(火) 07:25:15.69ID:mhsU1MGa > ダメな例出して
って啖呵きったらさくっと出されて発狂中
って啖呵きったらさくっと出されて発狂中
694デフォルトの名無しさん
2017/09/27(水) 06:34:18.36ID:OnyIuiaa 頭が悪すぎて相手にされないauto使いかわいそう。
695デフォルトの名無しさん
2017/09/27(水) 09:28:21.53ID:asC30w7v696デフォルトの名無しさん
2017/09/27(水) 09:29:48.92ID:asC30w7v ○ 符号無し
× 符号有り
× 符号有り
697デフォルトの名無しさん
2017/09/27(水) 11:48:00.61ID:OnyIuiaa どうやらauto使いというのはCにおける未定義の意味を勘違いしてるようだ。
まだほとんどコードを書いたことがない初心者なのだろう。
まだほとんどコードを書いたことがない初心者なのだろう。
698デフォルトの名無しさん
2017/09/27(水) 11:53:50.86ID:OnyIuiaa > 他に許可する記述は見つけられなかった
面白い発想だな。Cを高級言語だと思ってんだろうな。これは笑える。
面白い発想だな。Cを高級言語だと思ってんだろうな。これは笑える。
699デフォルトの名無しさん
2017/09/27(水) 12:00:13.05ID:hAn/VwKR700デフォルトの名無しさん
2017/09/27(水) 12:36:06.37ID:OnyIuiaa メモリがリニアでないバンク方式やセグメント方式の処理系を知らないとは無知だな。
far、near知らないとか最近勉強し始めたのだろう。
Cは低級言語。処理系依存を書く言語。
コンパイラが勝手に処理系に依存した定義をしろってこと。
far、near知らないとか最近勉強し始めたのだろう。
Cは低級言語。処理系依存を書く言語。
コンパイラが勝手に処理系に依存した定義をしろってこと。
701デフォルトの名無しさん
2017/09/27(水) 14:25:01.86ID:hAn/VwKR nearだろうがfarもセグメント方式だろうが
a-b+b=a+b-b=aになるけど
ほとんどの環境で
なんてことは知らないか
a-b+b=a+b-b=aになるけど
ほとんどの環境で
なんてことは知らないか
702デフォルトの名無しさん
2017/09/27(水) 14:29:11.52ID:hAn/VwKR > 処理系依存を書く言語。
わざわざ依存した書き方をしなくていい
依存しないでデメリットなくかけるなら依存しない方法をとるのが普通
ていうか、
言語的に保証されてないアドレスの減算の処理などコンパイラの説明書に普通書いてないが、
誰が責任を取るつもり?
わざわざ依存した書き方をしなくていい
依存しないでデメリットなくかけるなら依存しない方法をとるのが普通
ていうか、
言語的に保証されてないアドレスの減算の処理などコンパイラの説明書に普通書いてないが、
誰が責任を取るつもり?
703はちみつ餃子 ◆8X2XSCHEME
2017/09/27(水) 16:20:12.02ID:yRzprl02 強力な最適化コンパイラはプログラマが未定義を踏んでいないことをあてにした最適化をすることがある。
「ほとんどの環境で大丈夫」なんていうのは現代では思い込みだよ。 全然大丈夫じゃない。
「ほとんどの環境で大丈夫」なんていうのは現代では思い込みだよ。 全然大丈夫じゃない。
704デフォルトの名無しさん
2017/09/27(水) 17:12:16.04ID:7dA/9JOQ 未定義の動作だからその文丸ごと消しちゃっても構わないよね
って最適化がかかってバグった話は、どこかで読んだな
って最適化がかかってバグった話は、どこかで読んだな
705デフォルトの名無しさん
2017/09/27(水) 18:35:30.13ID:Ep3hxvTm >>703
offsetofとかいうマクロの中身を見てみようか
offsetofとかいうマクロの中身を見てみようか
706デフォルトの名無しさん
2017/09/27(水) 18:37:06.64ID:Ep3hxvTm708デフォルトの名無しさん
2017/09/27(水) 20:32:56.04ID:r7aVrRwL バカにマジレスみっともない
709デフォルトの名無しさん
2017/09/27(水) 21:11:03.19ID:hAn/VwKR >>707
中身見た?
中身見た?
710デフォルトの名無しさん
2017/09/27(水) 21:14:39.99ID:7dA/9JOQ offsetofはコンパイラメーカーが用意するものだから
意味合いが違ってくるのでは?
意味合いが違ってくるのでは?
711デフォルトの名無しさん
2017/09/27(水) 21:15:50.58ID:hAn/VwKR なにも考えずに互換性を減らすコードを書くのはアホ
使う環境が限られているのに、互換性を理由に明確なメリットがあるコードを避けるのもアホ
使う環境が限られているのに、互換性を理由に明確なメリットがあるコードを避けるのもアホ
712デフォルトの名無しさん
2017/09/27(水) 21:17:57.15ID:m77m4D83 また未定義、未規定、処理系定義の違いもわかってない>>700が暴れてるのか
autoに粘着してるところを見ると新しいものについていけなくなった老害なんだろうな w
autoに粘着してるところを見ると新しいものについていけなくなった老害なんだろうな w
713デフォルトの名無しさん
2017/09/27(水) 21:18:58.16ID:7dA/9JOQ それとoffsetofに何の関係が?
offsetofはコンパイラメーカーが用意したんだろうから
少なくともそのコンパイラでは動くようになってる
だからといってどうこうという話は一切ない
offsetofはコンパイラメーカーが用意したんだろうから
少なくともそのコンパイラでは動くようになってる
だからといってどうこうという話は一切ない
714デフォルトの名無しさん
2017/09/27(水) 21:22:31.36ID:hAn/VwKR offsetofは>>703への反論
715デフォルトの名無しさん
2017/09/27(水) 21:26:08.14ID:7dA/9JOQ716デフォルトの名無しさん
2017/09/27(水) 21:38:58.24ID:hAn/VwKR offsetofがどうやって出来たかも知らんとは
じゃあ逆にうまく動かない具体例を知ってる?
たいてい内部はただの整数演算だぞ
じゃあ逆にうまく動かない具体例を知ってる?
たいてい内部はただの整数演算だぞ
717はちみつ餃子 ◆8X2XSCHEME
2017/09/27(水) 21:51:01.70ID:yRzprl02 >>716
いいえ。 たとえば GCC は __builtin_offsetof を持っていて、 offsetof マクロはこれに展開されます。
いいえ。 たとえば GCC は __builtin_offsetof を持っていて、 offsetof マクロはこれに展開されます。
718デフォルトの名無しさん
2017/09/27(水) 22:05:03.95ID:7dA/9JOQ だからoffsetofはコンパイラメーカーが用意したもので
自分たちが自分たちの製品用に用意したんだから動くのは当たり前だろ?
offsetofは動くが(そりゃコンパイラメーカーが用意したんだから当たり前)
だから何なんだ?
nullptrが好きみたいだから
https://cpplover.blogspot.jp/2015/12/blog-post_21.html
↑を読んでみると良い
それもじっくり読んだほうが良い
こういった不慮の事故があるから未定義動作は避けるべきというのは当たり前では?
↑のプログラムが未定義動作で最適化でコンパイラで削除されるのに
offsetofは最適化されずに残るってのは非常に興味深い微妙な部分なんだよ
やってることはヌルポインターの参照で同じことなんだがな
こんなのさじ加減なんで、何が起こるか分からない
自分たちが自分たちの製品用に用意したんだから動くのは当たり前だろ?
offsetofは動くが(そりゃコンパイラメーカーが用意したんだから当たり前)
だから何なんだ?
nullptrが好きみたいだから
https://cpplover.blogspot.jp/2015/12/blog-post_21.html
↑を読んでみると良い
それもじっくり読んだほうが良い
こういった不慮の事故があるから未定義動作は避けるべきというのは当たり前では?
↑のプログラムが未定義動作で最適化でコンパイラで削除されるのに
offsetofは最適化されずに残るってのは非常に興味深い微妙な部分なんだよ
やってることはヌルポインターの参照で同じことなんだがな
こんなのさじ加減なんで、何が起こるか分からない
719デフォルトの名無しさん
2017/09/27(水) 22:44:20.00ID:Ep3hxvTm >>717
具体例は?
具体例は?
720デフォルトの名無しさん
2017/09/27(水) 23:48:58.08ID:/q7ePKPV 具体例が無いと>>702-704,718の懸念は認められない。
などと思っているならこいつはとんだアホウだ
などと思っているならこいつはとんだアホウだ
721デフォルトの名無しさん
2017/09/28(木) 06:23:37.76ID:kmv+HSxh 具体例が出ないことは>>701の証拠となる
722デフォルトの名無しさん
2017/09/28(木) 06:28:56.63ID:kmv+HSxh つまり>>700の否定だ
723デフォルトの名無しさん
2017/09/28(木) 06:46:37.21ID:0QfR7+Yk724デフォルトの名無しさん
2017/09/28(木) 07:37:45.60ID:kmv+HSxh725デフォルトの名無しさん
2017/09/28(木) 10:53:55.67ID:Ktm1uHRp それとoffsetofが何の関係があるのか、と聞いているわけだが
726デフォルトの名無しさん
2017/09/28(木) 11:32:16.87ID:Q/eIhlb2727デフォルトの名無しさん
2017/09/28(木) 11:35:32.70ID:mxHsq9Is offsetofと同様の自作マクロがたくさん使われてる
ということを知らないとは
ていうか、順番が逆だ
色々な所で使われてるから標準化された
ということを知らないとは
ていうか、順番が逆だ
色々な所で使われてるから標準化された
728デフォルトの名無しさん
2017/09/28(木) 11:37:25.53ID:mxHsq9Is >>725
offsetofの中身を見れば関連がわかる
offsetofの中身を見れば関連がわかる
729デフォルトの名無しさん
2017/09/28(木) 11:46:41.60ID:cnz4JX/W きっと>728の使ってるコンパイラでのoffsetofの定義には我々の想像も付かない何かが書いてあるんだよ。
他の人の使ってるコンパイラでも同じことが書いてあるはずだと思ってる理由はわかんないんだけど。
>728はその「offsetofの中身」を明示して話すといいんじゃないかな。知らんけど。
他の人の使ってるコンパイラでも同じことが書いてあるはずだと思ってる理由はわかんないんだけど。
>728はその「offsetofの中身」を明示して話すといいんじゃないかな。知らんけど。
730デフォルトの名無しさん
2017/09/28(木) 12:01:16.61ID:Q/eIhlb2731デフォルトの名無しさん
2017/09/28(木) 12:44:17.37ID:mxHsq9Is 0番地を構造体のアドレスにキャストして、メンバのアドレスに変換して、それをそのまま整数にキャストする
ってマクロ、昔は一般的に使われてたんだけど
知らないか
>>701の根拠のひとつ
いずれにしろ、
反例がひとつも出て来ないようじゃそんな根拠もいらないね
ってマクロ、昔は一般的に使われてたんだけど
知らないか
>>701の根拠のひとつ
いずれにしろ、
反例がひとつも出て来ないようじゃそんな根拠もいらないね
732デフォルトの名無しさん
2017/09/28(木) 12:45:47.97ID:mxHsq9Is733デフォルトの名無しさん
2017/09/28(木) 14:59:31.87ID:RoqMj8TI ぬるぽ使った自作offsetofがすべての処理系で正常動作するとは限らない
って話じゃないのけ?
って話じゃないのけ?
734デフォルトの名無しさん
2017/09/28(木) 16:36:34.69ID:P9MlpSyZ ぬるぬるぽっぽっぽ
735デフォルトの名無しさん
2017/09/28(木) 18:14:43.67ID:Ktm1uHRp >>726
offsetofはコンパイラベンダーが用意したのだから動くのは当たり前では
俺らからしたら、未定義動作、処理系依存、実装依存、であっても
コンパイラベンダーからしたら、仕様なのでは?
特にコンパイラベンダーは究極的にはコンパイラの仕様を変更することも
出来る立場なので
offsetofはコンパイラベンダーが用意したのだから動くのは当たり前では
俺らからしたら、未定義動作、処理系依存、実装依存、であっても
コンパイラベンダーからしたら、仕様なのでは?
特にコンパイラベンダーは究極的にはコンパイラの仕様を変更することも
出来る立場なので
736デフォルトの名無しさん
2017/09/28(木) 18:44:25.04ID:kmv+HSxh737デフォルトの名無しさん
2017/09/28(木) 18:45:14.20ID:kmv+HSxh >>735
壊れたレコードプレーヤーか?
壊れたレコードプレーヤーか?
738デフォルトの名無しさん
2017/09/28(木) 18:47:54.52ID:Ktm1uHRp 壊れたレコードでも何でもいいけど
説明求む
説明求む
739デフォルトの名無しさん
2017/09/28(木) 18:52:01.14ID:kmv+HSxh 日本語が通じない人に説明は不可能
おれは>>726じゃないし
おれは>>726じゃないし
740はちみつ餃子 ◆8X2XSCHEME
2017/09/28(木) 18:52:29.72ID:pSALrJPI なんでそんなに仕様に違反したいんだ?
仕様に違反すべきではないってことにそんなに根拠が必要か?
仕様に違反すべきではないってことにそんなに根拠が必要か?
741デフォルトの名無しさん
2017/09/28(木) 18:52:32.31ID:kmv+HSxh とりあえず落ち着いてスレを読み返しな
742デフォルトの名無しさん
2017/09/28(木) 18:54:33.80ID:kmv+HSxh743デフォルトの名無しさん
2017/09/28(木) 18:57:08.19ID:kmv+HSxh そもそも、どの環境でも正しく動く保証がある意味のあるコードなんてないから
どのコードもある程度環境を前提としてる
どのコードもある程度環境を前提としてる
744デフォルトの名無しさん
2017/09/28(木) 19:09:22.17ID:Ktm1uHRp そんな唐突な、そもそも論は、要らないだろ
程度問題だろ
C/C++の仕様的にはNGでも、コンパイラの仕様書にOKって書いてあればOKなんじゃね?
例えば int は 32bit 整数ですって書いてあれば、そういう製品仕様として納得するし
ただ、offsetofをもってしてOKと言えるのかどうか
程度問題だろ
C/C++の仕様的にはNGでも、コンパイラの仕様書にOKって書いてあればOKなんじゃね?
例えば int は 32bit 整数ですって書いてあれば、そういう製品仕様として納得するし
ただ、offsetofをもってしてOKと言えるのかどうか
745デフォルトの名無しさん
2017/09/28(木) 19:14:42.61ID:kmv+HSxh だからダメな例を出せって
>>699に対して反論したいなら
>>699に対して反論したいなら
746デフォルトの名無しさん
2017/09/28(木) 19:16:02.07ID:kmv+HSxh コンパイラの仕様書に書いてないよ普通
ポインタのビット数が書いてあるだけで
ポインタのビット数が書いてあるだけで
747デフォルトの名無しさん
2017/09/28(木) 19:19:48.44ID:Ktm1uHRp >だからダメな例を出せって
そしたら逆にコンパイラの仕様書でOKって書いてある例を出せ
って話になるでしょ
無ければグレーゾーンになるわけだ
まさに未定義
そしたら逆にコンパイラの仕様書でOKって書いてある例を出せ
って話になるでしょ
無ければグレーゾーンになるわけだ
まさに未定義
748デフォルトの名無しさん
2017/09/28(木) 19:30:52.46ID:kmv+HSxh 日本語が通じない人が多いなあ
とおもったら同じ人か
とおもったら同じ人か
749デフォルトの名無しさん
2017/09/28(木) 19:38:01.58ID:DuCN1h4Q >>745
だから>>717で反例でてるだろ
C++で&演算子を定義されたら簡単に破綻する
https://stackoverflow.com/questions/400116/what-is-the-purpose-and-return-type-of-the-builtin-offsetof-operator/406941#406941
だから>>717で反例でてるだろ
C++で&演算子を定義されたら簡単に破綻する
https://stackoverflow.com/questions/400116/what-is-the-purpose-and-return-type-of-the-builtin-offsetof-operator/406941#406941
750デフォルトの名無しさん
2017/09/28(木) 19:41:37.10ID:kmv+HSxh またトンチンカンな例を
話の流れくらい理解してから書け
話の流れくらい理解してから書け
751デフォルトの名無しさん
2017/09/28(木) 19:50:55.33ID:Ktm1uHRp そりゃ誰もお前の中だけの勝手な話の流れなど知ったことではないだろ
752デフォルトの名無しさん
2017/09/28(木) 20:20:35.35ID:N5fP/7zq >>750
トンチンカンとしか言えないなら黙ってろよw
トンチンカンとしか言えないなら黙ってろよw
753デフォルトの名無しさん
2017/09/28(木) 21:45:26.80ID:kaEtfd73 単純な話、ベンダー提供のマクロで言語仕様上保証されないような使い方がされていたとして、
そのマクロ自体の動作はベンダーが保証しても同じコードがそのマクロ外で保証されるわけじゃないよね。
実際には動くかもしらんけど。
そのマクロ自体の動作はベンダーが保証しても同じコードがそのマクロ外で保証されるわけじゃないよね。
実際には動くかもしらんけど。
754デフォルトの名無しさん
2017/09/28(木) 22:24:40.88ID:1QGPZBPb 最近また片山老人が暴れてんの?
755片山博文MZ ◆T6xkBnTXz7B0
2017/09/28(木) 23:35:41.44ID:Msp1dHAD 昔は学生運動が一大イベントだった。鉄砲の音が聞こえたら、学生たちが一斉に走り回る。それは軍隊のように団結力のある集団だった。
756片山博文MZ ◆T6xkBnTXz7B0
2017/09/29(金) 00:24:14.89ID:BT8GgIQb って昔話でもさせるのか?
757はちみつ餃子 ◆8X2XSCHEME
2017/09/29(金) 00:55:18.83ID:qoI7k83w758デフォルトの名無しさん
2017/09/29(金) 06:49:45.56ID:hLpF+zSQ759デフォルトの名無しさん
2017/09/29(金) 10:16:34.25ID:xgACZlxS >>736
すべての環境で動作する保証が無い=環境依存
すべての環境で動作する保証が無い=環境依存
760デフォルトの名無しさん
2017/09/29(金) 11:32:53.08ID:7lA4sLJU お前らが何を話しているのかわからん
相手に何を伝えたいのか
お前らは何を訴えたいのか
何も見えてこない
俺がないならもうやめろ
相手に何を伝えたいのか
お前らは何を訴えたいのか
何も見えてこない
俺がないならもうやめろ
761デフォルトの名無しさん
2017/09/29(金) 12:45:07.45ID:tIQyCYwJ 俺の主張は>699
762デフォルトの名無しさん
2017/09/29(金) 12:46:04.43ID:tIQyCYwJ 主張内容に興味無いけど
763デフォルトの名無しさん
2017/09/29(金) 21:46:50.94ID:1R/L2hD7 >>761
またおバカループかよ w
またおバカループかよ w
764デフォルトの名無しさん
2017/09/29(金) 22:31:02.23ID:+VZzhu5A765デフォルトの名無しさん
2017/09/30(土) 01:55:47.47ID:+yH9ha/d ちょっと不可解な部分があったから質問させてくれ
string型のデータをサーバに送信したくてOSSの関数に渡しているんだが、
データが一部壊れてしまう
問題のコードは、
string str = "{id:abc, ... , }"
void* payload = (void*) str.c_str();
send(payload, str.length());
これをやると、先頭の5バイトがうまく入らない
いくら考えても全然理由がわからず、意味のないことだと思いつつも以下のコードを書いてみたら何故かうまくいった
string str = "{id:abc, ... , }"
char* tmp = (char*)malloc(str.length() * sizeof(char) + 1);
strcpy(tmp, str.c_str());
payload = (void*)tmp;
send(payload, str.length());
下のコードを使えばうまく動いてるから問題ないんだけど、上のコードがダメな理由がわからずすごく気持ち悪い。
何か上の例だとまずい部分があるのかな?
送信関数は以下
send(void* payload, size_t length);
環境はVC++ 2012
Windows 7 64bit
ちなみに、同じコードを別環境(gcc 4.4.7 Cent OS 32bit)で動かすと、両方うまくいった
string型のデータをサーバに送信したくてOSSの関数に渡しているんだが、
データが一部壊れてしまう
問題のコードは、
string str = "{id:abc, ... , }"
void* payload = (void*) str.c_str();
send(payload, str.length());
これをやると、先頭の5バイトがうまく入らない
いくら考えても全然理由がわからず、意味のないことだと思いつつも以下のコードを書いてみたら何故かうまくいった
string str = "{id:abc, ... , }"
char* tmp = (char*)malloc(str.length() * sizeof(char) + 1);
strcpy(tmp, str.c_str());
payload = (void*)tmp;
send(payload, str.length());
下のコードを使えばうまく動いてるから問題ないんだけど、上のコードがダメな理由がわからずすごく気持ち悪い。
何か上の例だとまずい部分があるのかな?
送信関数は以下
send(void* payload, size_t length);
環境はVC++ 2012
Windows 7 64bit
ちなみに、同じコードを別環境(gcc 4.4.7 Cent OS 32bit)で動かすと、両方うまくいった
766デフォルトの名無しさん
2017/09/30(土) 02:12:16.55ID:/jgYbdHq >>765
c_str()ってどんな関数?
c_str()ってどんな関数?
767デフォルトの名無しさん
2017/09/30(土) 02:45:21.56ID:mQbjCOfm 非同期やbufferedの関数を正しく使えてないんだろ
たしか以前にboost.asioかなんかの同じような質問をきいたことがあったような
たしか以前にboost.asioかなんかの同じような質問をきいたことがあったような
768デフォルトの名無しさん
2017/09/30(土) 06:20:03.02ID:BNa/frNM ASIOといえば
Audio Stream input output
Audio Stream input output
769デフォルトの名無しさん
2017/09/30(土) 07:12:02.93ID:7qICbiUO そのインターフェースで非同期なのに 内部で実体のコピーをとってない場合とかだと
実際に送信完了するまで 渡した引数の実体が生きてる必要があるね
実際に送信完了するまで 渡した引数の実体が生きてる必要があるね
770デフォルトの名無しさん
2017/09/30(土) 09:19:09.47ID:fdjE74yE void *型を使う意図について
771765
2017/09/30(土) 10:38:13.12ID:+yH9ha/d772デフォルトの名無しさん
2017/09/30(土) 10:53:58.34ID:V/gsXwon >sendの後に送信結果を受け取る関数を呼んでる。
>そのあとでpayloadは解放されるようになってる
ならそのsendのバグか他でのメモリ破壊だろ
そのコード自体には問題はない
>そのあとでpayloadは解放されるようになってる
ならそのsendのバグか他でのメモリ破壊だろ
そのコード自体には問題はない
773デフォルトの名無しさん
2017/09/30(土) 11:13:57.36ID:8c7P82E8774デフォルトの名無しさん
2017/09/30(土) 11:28:17.88ID:tI4TVI1o 問題点の切り分けは大事だな
元のソースを問題が再現する最小限のところまで切り詰めてみるとか
その過程で問題が起きなくなったら関係ないと思って切り詰めたところが原因だろうし
元のソースを問題が再現する最小限のところまで切り詰めてみるとか
その過程で問題が起きなくなったら関係ないと思って切り詰めたところが原因だろうし
775デフォルトの名無しさん
2017/09/30(土) 13:47:25.00ID:jk0Saihc どうおかしくなってるのか分からない
"{id:abc, ・・・"が"XXXXXbc, ・・・"となる(ascii 88 = 'X')ってことなのか
"{id:abc, ・・・"が"XXXXXbc, ・・・"となる(ascii 88 = 'X')ってことなのか
776デフォルトの名無しさん
2017/09/30(土) 23:34:44.40ID:WG2DMprw すいません
メモ帳ソフトのTextTreeみたいに
タブを並べられて、そのタブごとに個別のツリーを格納するには
どうしたらいいんでしょうか?
ttp://www.vector.co.jp/magazine/softnews/080129/images/n08012931b.gif
なんでここで聞くかというと
TextTreeの開発者のコメントに
「wxWidgets」をいじっていたので、これを使って作ってみようと思った、というのがあって
そのwxWidgetsのHPに
wxWidgets is a C++ library〜
と表記されていたからです。
普通のメモやテキストエディタは
ツリー>タブ>メモという構成ですが
Texttreeのような
タブ>ツリー>メモという構成が希望ということです。
またTextTreeは、リッチテキストが扱えるものの
文字が65535バイト以上入力できず、それ以上は入力しても消えてしまうバグを抱えていて
どうしてそのような不具合になるのかも知りたいのですが…
メモ帳ソフトのTextTreeみたいに
タブを並べられて、そのタブごとに個別のツリーを格納するには
どうしたらいいんでしょうか?
ttp://www.vector.co.jp/magazine/softnews/080129/images/n08012931b.gif
なんでここで聞くかというと
TextTreeの開発者のコメントに
「wxWidgets」をいじっていたので、これを使って作ってみようと思った、というのがあって
そのwxWidgetsのHPに
wxWidgets is a C++ library〜
と表記されていたからです。
普通のメモやテキストエディタは
ツリー>タブ>メモという構成ですが
Texttreeのような
タブ>ツリー>メモという構成が希望ということです。
またTextTreeは、リッチテキストが扱えるものの
文字が65535バイト以上入力できず、それ以上は入力しても消えてしまうバグを抱えていて
どうしてそのような不具合になるのかも知りたいのですが…
777デフォルトの名無しさん
2017/09/30(土) 23:53:50.61ID:xUuIbR05778デフォルトの名無しさん
2017/10/01(日) 00:34:39.70ID:QEgiuasJ >>776
wxWidgets固有のことは知らないけど
タブごとにツリーを用意して各タブに対応する子ウィンドウに配置するだけでしょ
もしくはツリーを一つだけ用意してタブ切り替えのたびに中身を書き換えればいいんじゃない
wxWidgets固有のことは知らないけど
タブごとにツリーを用意して各タブに対応する子ウィンドウに配置するだけでしょ
もしくはツリーを一つだけ用意してタブ切り替えのたびに中身を書き換えればいいんじゃない
779デフォルトの名無しさん
2017/10/01(日) 02:46:34.57ID:CsBQRyQX >str.c_str() 渡した場合は str の寿命や変更で解放されることになる。
いやだから、payload==str は送信結果を受けてから
開放してるって本人は言ってるのでは?
いやだから、payload==str は送信結果を受けてから
開放してるって本人は言ってるのでは?
780デフォルトの名無しさん
2017/10/01(日) 08:09:58.98ID:a+6SxdIf 明示的に解放しないstringの方はそこを意識してなかった可能性もあるんじゃね?
非同期ってことは>>765でsendした関数からは一旦抜けてるでしょ?
非同期ってことは>>765でsendした関数からは一旦抜けてるでしょ?
781デフォルトの名無しさん
2017/10/01(日) 09:03:15.51ID:XhBoqkon >>776
1つの方法としては
タブが切り替えられる毎にイベント発生するから
タブAが押されたらダイアログAを表示してそれまでに表示されてたダイアログは非表示にする
ダイアログ毎にツリーとリッチエディットを用意したらいい
あとWin32APIスレの方がいいよ
1つの方法としては
タブが切り替えられる毎にイベント発生するから
タブAが押されたらダイアログAを表示してそれまでに表示されてたダイアログは非表示にする
ダイアログ毎にツリーとリッチエディットを用意したらいい
あとWin32APIスレの方がいいよ
782デフォルトの名無しさん
2017/10/01(日) 09:35:07.78ID:JA+cHEn5783デフォルトの名無しさん
2017/10/01(日) 09:52:09.27ID:a+6SxdIf してない可能性を挙げたのに「すんのかよ」って俺に言われてもなw
784デフォルトの名無しさん
2017/10/01(日) 10:26:50.12ID:7TdPvZgo785デフォルトの名無しさん
2017/10/01(日) 10:32:30.15ID:qINK5MH4 vc2012だとC++11への準拠はどうなんだろ
c++11以降はc_strも実体を指す保証があるようだけど、
以前は関数内のstatic変数みたいな実装してた気がする・・
c++11以降はc_strも実体を指す保証があるようだけど、
以前は関数内のstatic変数みたいな実装してた気がする・・
786デフォルトの名無しさん
2017/10/01(日) 11:40:53.20ID:Q5nZisR/787デフォルトの名無しさん
2017/10/01(日) 11:49:29.48ID:o4fxg+Ov 可能性を言い出したらなんでもあり
不毛なレスは止めようよ
不毛なレスは止めようよ
788デフォルトの名無しさん
2017/10/03(火) 17:35:19.79ID:ZgS0QfuG789デフォルトの名無しさん
2017/10/03(火) 18:51:26.51ID:kBDRpd1G >>788
どういう実装だった?
どういう実装だった?
790デフォルトの名無しさん
2017/10/03(火) 19:50:33.30ID:VzAuCmWc shared_ptrを戻すメンバ関数があるんですが
引数の条件に一致する物が無い場合、空というのが分かるshared_ptrを返したいんです。
どう書けばいいですか?
引数の条件に一致する物が無い場合、空というのが分かるshared_ptrを返したいんです。
どう書けばいいですか?
791片山博文MZ ◆T6xkBnTXz7B0
2017/10/03(火) 19:52:37.35ID:TFSQFt7Y ヌルポインター返してgetメソッドで確認。
792デフォルトの名無しさん
2017/10/03(火) 19:59:11.57ID:VzAuCmWc ありがとうございました!
793はちみつ餃子 ◆8X2XSCHEME
2017/10/03(火) 22:45:38.84ID:7OuP8h6T std::optional を使った方がよくない?
794デフォルトの名無しさん
2017/10/04(水) 15:03:07.29ID:B6Js2yoS795デフォルトの名無しさん
2017/10/04(水) 21:20:20.65ID:eGyO5ooe 初心者的質問で申し訳ないですが、libファイルの検索仕方を教えて下さい。
includeファイルはgrepかければ見つかりますが、リンクするとき、静的ライブラリ、libファイルの検索はどうすればいいか分かりません。
とりあえず、怪しい奴を片っ端からリンクしますが、それもどうかと思います。
マニュアルに書いてある訳でもないので皆さまどうされてるのか気になります。
includeファイルはgrepかければ見つかりますが、リンクするとき、静的ライブラリ、libファイルの検索はどうすればいいか分かりません。
とりあえず、怪しい奴を片っ端からリンクしますが、それもどうかと思います。
マニュアルに書いてある訳でもないので皆さまどうされてるのか気になります。
797775
2017/10/05(木) 07:26:13.70ID:/WMFst6h ありがとうございます。
ネットで調べるのがメインなので、つい、本はケチってしまいました
bgrepは入れられないので-aでなんとかしてみます
ネットで調べるのがメインなので、つい、本はケチってしまいました
bgrepは入れられないので-aでなんとかしてみます
798デフォルトの名無しさん
2017/10/05(木) 21:03:39.22ID:MEVeuXK3799デフォルトの名無しさん
2017/10/05(木) 21:31:37.51ID:Px1fI0/v いちいちけなさんと会話も出来んのかゴミクズが
へー、じゃあ寿命は保証されてるわけか、そんなことはなかったはずだが
>>765の問題は寿命の問題だと思うが、ケチつけるなら正確に書いてくれる?
混乱を招くだけのイチャモンとか何の役にも立たんわ
へー、じゃあ寿命は保証されてるわけか、そんなことはなかったはずだが
>>765の問題は寿命の問題だと思うが、ケチつけるなら正確に書いてくれる?
混乱を招くだけのイチャモンとか何の役にも立たんわ
800デフォルトの名無しさん
2017/10/05(木) 23:47:16.81ID:7Cw6eX8p c_strは実態をさすけど変更するなって書いてなかったっけ?
801デフォルトの名無しさん
2017/10/06(金) 00:14:51.51ID:M5Ph95zK 03以前は変更された後にc_str()を使うのも、そもそも内部で連続してる保証も無かったはず
今調べたけどdata(), c_str()の呼び出しでも変更される可能性があるらしい(11は大丈夫
今調べたけどdata(), c_str()の呼び出しでも変更される可能性があるらしい(11は大丈夫
802デフォルトの名無しさん
2017/10/07(土) 00:46:39.10ID:AU7JWIym ポインターを覚えたけど、使いどころが思い付かない
誰か教えて……
誰か教えて……
803デフォルトの名無しさん
2017/10/07(土) 02:11:18.12ID:El+Xr4aF >>802
一個のサイズが10KBほどある構造体のソートにでも使えよ
一個のサイズが10KBほどある構造体のソートにでも使えよ
804デフォルトの名無しさん
2017/10/07(土) 15:35:22.92ID:cqowZFEs それポインタじゃなくて整数でよくない
805デフォルトの名無しさん
2017/10/07(土) 16:29:02.76ID:jvf7kHO4 ポインタと整数じゃ概念が違う
整数をアドレスを指し示す用途で使いますよってのがポインタだし
整数をアドレスを指し示す用途で使いますよってのがポインタだし
806デフォルトの名無しさん
2017/10/07(土) 17:29:30.12ID:jg4p8iD7 変数とポインターでメモリをずっと使うか取り除くかの違い?
807デフォルトの名無しさん
2017/10/07(土) 17:49:35.28ID:vj+NLXIf >>802
mallocの戻り値とかsprintfの引数とかで使えばええねん
mallocの戻り値とかsprintfの引数とかで使えばええねん
808デフォルトの名無しさん
2017/10/07(土) 19:03:08.66ID:AU7JWIym みなさんありがとうございます
規模の大きいデータで使うみたいですね
後は他の関数を飛び越えてアクセスしたい時とか
規模の大きいデータで使うみたいですね
後は他の関数を飛び越えてアクセスしたい時とか
809デフォルトの名無しさん
2017/10/08(日) 11:15:35.68ID:2tobGFFt >>805
配列のソートだったらアドレスよりインデックスの方が概念的に適切だろ?
配列のソートだったらアドレスよりインデックスの方が概念的に適切だろ?
810デフォルトの名無しさん
2017/10/10(火) 15:59:13.06ID:3nxFazlM p==p_rgh + rho*gh;
とあるのですが意味がわかりません。
p=p_rgh+rho*gh;であるべきと思うのですが、==と=が使い分けされているので
タイプミスではなさそうです。どなたかよろしくお願いします。
とあるのですが意味がわかりません。
p=p_rgh+rho*gh;であるべきと思うのですが、==と=が使い分けされているので
タイプミスではなさそうです。どなたかよろしくお願いします。
811片山博文MZ ◆T6xkBnTXz7B0
2017/10/10(火) 16:10:57.64ID:RmsAElXw >>810
「p==p_rgh」は、pとp_rghが等しいとき1 (true)になり、等しくないときゼロ (false)になる。
「p==p_rgh」は、pとp_rghが等しいとき1 (true)になり、等しくないときゼロ (false)になる。
812片山博文MZ ◆T6xkBnTXz7B0
2017/10/10(火) 16:14:41.98ID:RmsAElXw813デフォルトの名無しさん
2017/10/10(火) 19:02:14.11ID:z98emhq8 >>810
問題のその式が、if文のカッコの中ではなく、普通に式文としてセミコロンで終わる1行として書かれているなら、ただの誤記の可能性が高いと思うよ。
問題のその式が、if文のカッコの中ではなく、普通に式文としてセミコロンで終わる1行として書かれているなら、ただの誤記の可能性が高いと思うよ。
814デフォルトの名無しさん
2017/10/10(火) 19:04:42.99ID:3nxFazlM >>812
ご回答ありがとうございます。が、やはりわかりません。
たとえば、
if (p==p_rgh + rho*gh)
{
…
}
や、q=p==p_rgh + rho*gh;とかならわかるのですが、
…
p==p_rgh + rho*gh;
…
と独立しているのでどんな処理をしているのか・・・
ご回答ありがとうございます。が、やはりわかりません。
たとえば、
if (p==p_rgh + rho*gh)
{
…
}
や、q=p==p_rgh + rho*gh;とかならわかるのですが、
…
p==p_rgh + rho*gh;
…
と独立しているのでどんな処理をしているのか・・・
815デフォルトの名無しさん
2017/10/10(火) 19:11:07.30ID:+PpsJNG1 >>814
その本をさらせ、話はそれからだ
その本をさらせ、話はそれからだ
816片山博文MZ ◆T6xkBnTXz7B0
2017/10/10(火) 19:12:17.54ID:RmsAElXw >>814
そのように独立していれば何もしない。何もしない文をわざわざ複雑に書くことは意味がないので、代入を間違って書かれたと考えられる。
そのように独立していれば何もしない。何もしない文をわざわざ複雑に書くことは意味がないので、代入を間違って書かれたと考えられる。
817はちみつ餃子 ◆8X2XSCHEME
2017/10/10(火) 20:29:28.41ID:ISsQMV5w operator== をオーバーロードしてたらなんかすることもあるのでは。
818デフォルトの名無しさん
2017/10/10(火) 20:44:10.61ID:9u7+xOBM そのコードでググったら流体シミュレーション系のライブラリが出てきたけど
=の誤植っぽいな
=の誤植っぽいな
819デフォルトの名無しさん
2017/10/10(火) 22:40:42.03ID:0CEF1oXw >>817
あるかもしれんが、それを書いた奴は底意地が悪いにもほどがあるなw
あるかもしれんが、それを書いた奴は底意地が悪いにもほどがあるなw
820デフォルトの名無しさん
2017/10/11(水) 23:12:25.71ID:0+NB42kW 糞オーバーロードは死刑で
821デフォルトの名無しさん
2017/10/12(木) 08:00:09.14ID:sPruOUUO パズルとか頭の体操みたいな意味では
キチガイじみた演算子オーバーロードも面白いんだけどね。
これを業界用語で
"Proving Grounds of the Mad Overload" と呼んだりする。
キチガイじみた演算子オーバーロードも面白いんだけどね。
これを業界用語で
"Proving Grounds of the Mad Overload" と呼んだりする。
822デフォルトの名無しさん
2017/10/12(木) 08:59:40.90ID:ILNtvg14823デフォルトの名無しさん
2017/10/13(金) 01:27:13.01ID:DZqiVJRN p ghってなに
825デフォルトの名無しさん
2017/10/13(金) 01:43:21.69ID:DZqiVJRN で、p ghってなに?
826デフォルトの名無しさん
2017/10/13(金) 02:20:13.79ID:vXJvgE+6 少し遡れよ
827デフォルトの名無しさん
2017/10/13(金) 06:55:33.00ID:kwktlkZb828デフォルトの名無しさん
2017/10/13(金) 07:59:25.08ID:IEqvHxzW ぷげはー
829827
2017/10/13(金) 11:29:02.31ID:kwktlkZb830デフォルトの名無しさん
2017/10/13(金) 11:34:16.38ID:qDJA92iZ831デフォルトの名無しさん
2017/10/14(土) 13:55:38.78ID:c4RRY+Fs http://webings.net/c/cal/
ここのソースコードをバーチャルスタジオにコピペしてビルドして実行してもHTML形式で表示してくれないんですが
HTML形式で表示するには何が必要なんですか?
ここのソースコードをバーチャルスタジオにコピペしてビルドして実行してもHTML形式で表示してくれないんですが
HTML形式で表示するには何が必要なんですか?
832片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 13:59:57.61ID:WLIJLkzn >>831
拡張子が.htmlまたは.htmのテキストファイルとウェブブラウザー。
拡張子が.htmlまたは.htmのテキストファイルとウェブブラウザー。
833デフォルトの名無しさん
2017/10/14(土) 13:59:58.35ID:c4RRY+Fs ヴィジュアルスタジオでしたすみません
834片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 14:02:26.81ID:WLIJLkzn >>831
そのプログラムは、ウェブサーバー側で実行されることを想定している。
そのプログラムは、ウェブサーバー側で実行されることを想定している。
835デフォルトの名無しさん
2017/10/14(土) 14:03:11.84ID:c4RRY+Fs 自分のPCでは無理ですか?
837デフォルトの名無しさん
2017/10/14(土) 14:04:57.37ID:c4RRY+Fs 難しいですね・・・
838デフォルトの名無しさん
2017/10/14(土) 14:27:50.51ID:c4RRY+Fs 苦Cまでは勉強したんですがどういう本読めばそういうの勉強できますか?
839片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 14:33:48.58ID:WLIJLkzn ウェブサーバーのインストールくらいは本を読まずに小学生でもできる。
ウェブサーバーについて知りたいなら「ウェブサーバーとは」で検索。
ウェブサーバー側のプログラムは、標準出力にHTMLを出力するただのコンソールプログラムか、スクリプトプログラムだ。
ブラウザーでウェブサーバーにアクセスすると、ウェブサーバー経由で出力されたHTMLが見れる。
ウェブサーバーについて知りたいなら「ウェブサーバーとは」で検索。
ウェブサーバー側のプログラムは、標準出力にHTMLを出力するただのコンソールプログラムか、スクリプトプログラムだ。
ブラウザーでウェブサーバーにアクセスすると、ウェブサーバー経由で出力されたHTMLが見れる。
840片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 14:43:24.68ID:WLIJLkzn "Content-type: text/html\n\n"
これは、httpヘッダーというものだ。これはHTMLテキスト以外にブラウザーと対話するためのデータだ。
httpヘッダーは、二つの改行コード("\n\n")で終わる決まりになっている。
これは、httpヘッダーというものだ。これはHTMLテキスト以外にブラウザーと対話するためのデータだ。
httpヘッダーは、二つの改行コード("\n\n")で終わる決まりになっている。
841片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 14:56:36.99ID:WLIJLkzn ウェブについてはウェブ技術関連だから、C/C++とは別の話になる。スレ違いだから、ウェブ技術板へ行った方がいいかも知れない。
842片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 15:03:37.69ID:WLIJLkzn スレ違いのため、誘導します。
インターネット質問スレ64 [無断転載禁止]??2ch.net
http://mevius.2ch.net/test/read.cgi/internet/1500505753/
ここのスレでウェブサーバーとHTTPの仕組みについて質問するといいよ。
インターネット質問スレ64 [無断転載禁止]??2ch.net
http://mevius.2ch.net/test/read.cgi/internet/1500505753/
ここのスレでウェブサーバーとHTTPの仕組みについて質問するといいよ。
843デフォルトの名無しさん
2017/10/14(土) 15:10:51.07ID:jjVQLoTb いい加減に書き込みで文字化けするブラウザなんて捨てろよ
844デフォルトの名無しさん
2017/10/14(土) 17:42:42.94ID:3MCmUjcj845片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 17:50:52.07ID:WLIJLkzn >>844
Web関係をやりたいのかい? WebではCはあまり使わないよ。使うなら、JavaScript, Java, PHP, Python, RoR, SQLぐらいかな。
Web関係をやりたいのかい? WebではCはあまり使わないよ。使うなら、JavaScript, Java, PHP, Python, RoR, SQLぐらいかな。
846片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 18:09:28.74ID:WLIJLkzn C/C++でWebやるなら、Win32API直接叩くか、cURLのような汎用のライブラリーを使うか、SQLiteかMySQLでデータベースにアクセスするくらいかな。
847デフォルトの名無しさん
2017/10/14(土) 18:41:27.96ID:3MCmUjcj >>845
webやりたいって言うか上のサイト見たいな事をC言語でもできることにびっくりしたんです
webやりたいって言うか上のサイト見たいな事をC言語でもできることにびっくりしたんです
848片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 19:05:03.99ID:WLIJLkzn Cはバッファオーバーフローが起こりやすく基本的に安全じゃない言語であり、バイナリーは、ロックの問題があり、またポータブルじゃないから、サーバー側のアプリではあまり使わない。
849デフォルトの名無しさん
2017/10/14(土) 20:01:26.45ID:kY4tNrcH 安全安全って、お前らバグ仕込みの達人かよ…
850デフォルトの名無しさん
2017/10/14(土) 20:17:34.14ID:q9IpA67V int c=0;
for(;;) c++;
これだけでバッファオーバーフローって起きるんですか?
for(;;) c++;
これだけでバッファオーバーフローって起きるんですか?
851デフォルトの名無しさん
2017/10/14(土) 20:23:02.85ID:4H9yAKfY 無限ループだけどバッファーの確保領域を突破してアクセスするようなコードを吐き出すことは無い
と思う
と思う
852片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 20:43:46.00ID:WLIJLkzn >>850
簡単に分かりやすい例を挙げると、外側から来た任意の長さの文字列でstrcatやsprintfなどを使うと危険。
危険な関数は使用禁止してセキュリティの強化された関数に置き換えないといけない。
簡単に分かりやすい例を挙げると、外側から来た任意の長さの文字列でstrcatやsprintfなどを使うと危険。
危険な関数は使用禁止してセキュリティの強化された関数に置き換えないといけない。
853片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 20:59:09.10ID:WLIJLkzn だが、残念ながら、教育現場ではバッファの長さを考慮しないsprintfやstrcatを教えているところが今でもある。
標準のC言語ではセキュリティは低いと考えた方がいい。
標準のC言語ではセキュリティは低いと考えた方がいい。
854デフォルトの名無しさん
2017/10/14(土) 20:59:25.10ID:MqT/JM+M855片山博文MZ ◆T6xkBnTXz7B0
2017/10/14(土) 21:16:55.49ID:WLIJLkzn ちっ、俺がstrsafeを移植しないといけないか。
856デフォルトの名無しさん
2017/10/14(土) 23:37:16.03ID:q9IpA67V >>851-854
ということは、255サイズのリングバッファ作りたいときって
unsigned char buffer[255] = {0};
unsigned char head=0, tail=0;
unsigned char pop(){
if(head==255) head = 0;
return buffer[++head];
}
void push(unsigned char data){
if(tail==255) tail = 0;
buffer[++tail]=data;
}
このサイズチェックのif文なくても大丈夫ってことですか?
ということは、255サイズのリングバッファ作りたいときって
unsigned char buffer[255] = {0};
unsigned char head=0, tail=0;
unsigned char pop(){
if(head==255) head = 0;
return buffer[++head];
}
void push(unsigned char data){
if(tail==255) tail = 0;
buffer[++tail]=data;
}
このサイズチェックのif文なくても大丈夫ってことですか?
857デフォルトの名無しさん
2017/10/14(土) 23:48:06.29ID:oz/gRrlj お前の例だと255でゼロになるけど
オーバーフローの場合は256でゼロになる
よって必要
オーバーフローの場合は256でゼロになる
よって必要
858デフォルトの名無しさん
2017/10/15(日) 00:30:38.33ID:9R+c2v2L ひでーコードだ。
859デフォルトの名無しさん
2017/10/15(日) 00:40:58.16ID:4m9/y95n headがぶっ壊れそう
860片山博文MZ ◆T6xkBnTXz7B0
2017/10/15(日) 05:20:33.19ID:3VVV/TO4 >>856
#define BUFSIZE 255
unsigned char buf[BUFSIZE] = {0};
size_t head = 0, tail = 0;
void push(unsigned char data)
{
assert(head < BUFSIZE);
buffer[head] = data;
++head;
if (head >= BUFSIZE) head = 0;
}
unsigned char pop()
{
unsigned char ret;
assert(tail < BUFSIZE);
ret = buf[tail];
++tail;
if (tail >= BUFSIZE) tail = 0;
return ret;
}
#define BUFSIZE 255
unsigned char buf[BUFSIZE] = {0};
size_t head = 0, tail = 0;
void push(unsigned char data)
{
assert(head < BUFSIZE);
buffer[head] = data;
++head;
if (head >= BUFSIZE) head = 0;
}
unsigned char pop()
{
unsigned char ret;
assert(tail < BUFSIZE);
ret = buf[tail];
++tail;
if (tail >= BUFSIZE) tail = 0;
return ret;
}
861デフォルトの名無しさん
2017/10/15(日) 09:46:01.53ID:TMBfPksM >>856
head &= 255; でチェック不要
head &= 255; でチェック不要
862デフォルトの名無しさん
2017/10/15(日) 10:09:16.14ID:IWZc9Obf 単なる例なんだろうけど、バッファサイズ=255って中途半端だな。
buffer[255]にセンチネル置くんならわかるが。
buffer[255]にセンチネル置くんならわかるが。
863デフォルトの名無しさん
2017/10/15(日) 11:47:13.03ID:uX83yxiA >>860
片山センセイ!
unsigned char buf[BUFSIZE] = {0};
て書いてある本と
unsigned char buf[BUFSIZE] = {};
て書いてある本があるんですけど同じでしょうか!?
片山センセイ!
unsigned char buf[BUFSIZE] = {0};
て書いてある本と
unsigned char buf[BUFSIZE] = {};
て書いてある本があるんですけど同じでしょうか!?
864片山博文MZ ◆T6xkBnTXz7B0
2017/10/15(日) 11:57:22.80ID:3VVV/TO4865デフォルトの名無しさん
2017/10/15(日) 12:04:53.73ID:t/hnbV6s866デフォルトの名無しさん
2017/10/15(日) 13:58:06.01ID:Mr2SylDC すこし譲って % 演算子で
867デフォルトの名無しさん
2017/10/16(月) 02:26:41.08ID:0Qezg1+a 除算より条件分岐の方が速い定期
868デフォルトの名無しさん
2017/10/16(月) 06:49:20.44ID:IzFutT5/ >>856
リングバッファの容量を256バイトにして、
バッファ領域を unsigned char buffer[256] = {0}; と
ちゃんと256バイト分確保すればサイズチェックは不要になるな。
ただし unsigned char の値範囲が 0 - 255 っていう「普通」の環境であること。
char が9ビットとか16ビットの機械/コンパイラもあるんだよね。
リングバッファの容量を256バイトにして、
バッファ領域を unsigned char buffer[256] = {0}; と
ちゃんと256バイト分確保すればサイズチェックは不要になるな。
ただし unsigned char の値範囲が 0 - 255 っていう「普通」の環境であること。
char が9ビットとか16ビットの機械/コンパイラもあるんだよね。
869デフォルトの名無しさん
2017/10/16(月) 07:00:03.02ID:IzFutT5/ それにしても >>856 は何やらモヤモヤするコードだと思ったら…
バッファサイズが 255 と半端な値
リングバッファのアクセス関数が push() / pop() て名前
インデクス操作が前置++
tail と head が互いを追い越す可能性(バッファあふれの可能性)
まだあるかな。
バッファサイズが 255 と半端な値
リングバッファのアクセス関数が push() / pop() て名前
インデクス操作が前置++
tail と head が互いを追い越す可能性(バッファあふれの可能性)
まだあるかな。
870デフォルトの名無しさん
2017/10/16(月) 08:04:32.95ID:iBTaJQF1 >char が9ビットとか16ビットの機械/コンパイラもあるんだよね。
え゛?まじで
え゛?まじで
871デフォルトの名無しさん
2017/10/16(月) 08:18:16.95ID:ipy+DI/z872デフォルトの名無しさん
2017/10/16(月) 08:49:21.72ID:IzFutT5/ 先に == 255 の判定をして 0 に戻すから
範囲外の buffer[255] にアクセスする危険があるのか。
インデクスに前置++は見慣れなくて気色悪い、じゃ済まない問題だな。
範囲外の buffer[255] にアクセスする危険があるのか。
インデクスに前置++は見慣れなくて気色悪い、じゃ済まない問題だな。
873デフォルトの名無しさん
2017/10/16(月) 12:53:13.92ID:TeGVYWUh874デフォルトの名無しさん
2017/10/16(月) 12:59:13.25ID:TeGVYWUh >>870
俺も実機は見たことないけど
パーソナルコンピューターでは一般に8ビット長だが、DEC PDP-10、IBM 7090、ACOS-6の動作するNECのメインフレームなど、36ビットワードマシンでは1バイトが9ビットであり、charも9ビット長となっている。
http://www.wdic.org/w/TECH/char
俺も実機は見たことないけど
パーソナルコンピューターでは一般に8ビット長だが、DEC PDP-10、IBM 7090、ACOS-6の動作するNECのメインフレームなど、36ビットワードマシンでは1バイトが9ビットであり、charも9ビット長となっている。
http://www.wdic.org/w/TECH/char
875デフォルトの名無しさん
2017/10/16(月) 16:13:16.23ID:mLqrsWtl876デフォルトの名無しさん
2017/10/16(月) 16:14:16.39ID:mLqrsWtl >>874
char16bitならもうちょっと身近に
char16bitならもうちょっと身近に
877デフォルトの名無しさん
2017/10/16(月) 20:14:57.67ID:e0xkLpP0 >>870
DSPとかだと40bitなんてのもあるよ
DSPとかだと40bitなんてのもあるよ
878デフォルトの名無しさん
2017/10/16(月) 21:01:51.62ID:JAGwlDmF >>877
ほんとに?
ほんとに?
879はちみつ餃子 ◆8X2XSCHEME
2017/10/16(月) 21:19:32.17ID:8llzdgRf >>870
ISO などでは 2008 年に 1 バイトは 8 ビットという定義を決めた。
http://diode.matrix.jp/LEGEND/BYTE.htm
1 バイトが 8 ビットではない (それなりに広く使われている) アーキテクチャが事実上消えたのは決め手のひとつだと思う。
C でこの定義を採用すると明記されているわけではないので、
C の言語仕様としては依然として処理系定義という扱いのはずだし、
何かの用途に特化したプロセッサでは変則的なものはいくらでもありうるんだけど、
自分で書くプログラムでそこまで想定することはまず無いわな。
ISO などでは 2008 年に 1 バイトは 8 ビットという定義を決めた。
http://diode.matrix.jp/LEGEND/BYTE.htm
1 バイトが 8 ビットではない (それなりに広く使われている) アーキテクチャが事実上消えたのは決め手のひとつだと思う。
C でこの定義を採用すると明記されているわけではないので、
C の言語仕様としては依然として処理系定義という扱いのはずだし、
何かの用途に特化したプロセッサでは変則的なものはいくらでもありうるんだけど、
自分で書くプログラムでそこまで想定することはまず無いわな。
880デフォルトの名無しさん
2017/10/16(月) 22:10:25.19ID:7CHwAcHs 処理系を言わないならx86と勝手に解釈していい。charは8bitじゃない処理系もあるとかナンセンス。
881デフォルトの名無しさん
2017/10/17(火) 00:03:46.71ID:gPfxTVwW vector<string> a;
for(auto i=0; i<20; ++i) a.push_back(" ");
// vector<string> b;
// b.push_back(" ");
て、なんかおかしな所ある?デバッガで size がやたら大きな値になる…
下2行コメント外すと想定どおりになる…もう、わからん
for(auto i=0; i<20; ++i) a.push_back(" ");
// vector<string> b;
// b.push_back(" ");
て、なんかおかしな所ある?デバッガで size がやたら大きな値になる…
下2行コメント外すと想定どおりになる…もう、わからん
882はちみつ餃子 ◆8X2XSCHEME
2017/10/17(火) 01:11:42.94ID:xlsZVRp9883デフォルトの名無しさん
2017/10/17(火) 01:15:35.02ID:hVetZd8l そういうときはな。デバッガで調べるんだよ。
884デフォルトの名無しさん
2017/10/17(火) 04:44:35.63ID:AOvKqYYR PICはcharが6ビット。
885デフォルトの名無しさん
2017/10/17(火) 07:19:31.01ID:nwT4mK5H >>881
size関数のアドレスを表示しているとエスパーしてみる
size関数のアドレスを表示しているとエスパーしてみる
886デフォルトの名無しさん
2017/10/17(火) 08:33:10.47ID:HbTCC5+E887デフォルトの名無しさん
2017/10/17(火) 09:15:45.07ID:EtZfCwzt888デフォルトの名無しさん
2017/10/17(火) 09:48:13.45ID:s7U5ZpjM だな
889はちみつ餃子 ◆8X2XSCHEME
2017/10/17(火) 10:10:10.17ID:xlsZVRp9890デフォルトの名無しさん
2017/10/17(火) 12:07:40.67ID:XkjDmgw/ VC で Release ビルドでデバッグトレースしてたりして
あれ、ソースレースできちゃうけど、あまりあてになんねーし
あれ、ソースレースできちゃうけど、あまりあてになんねーし
891デフォルトの名無しさん
2017/10/17(火) 12:09:50.70ID:kRPJAKch コンピューターの定義次第やな
株や証券取引に広く使われているFPGAはどういう扱いなの?
CUDAはどうなの?これらもC言語と称している言語で書くが?
この先は宗教戦争になるから止めれ
株や証券取引に広く使われているFPGAはどういう扱いなの?
CUDAはどうなの?これらもC言語と称している言語で書くが?
この先は宗教戦争になるから止めれ
892デフォルトの名無しさん
2017/10/17(火) 13:01:09.70ID:qd6dTZ1I 「コンピューター」に限定する必要もない
スレタイ見よう
スレタイ見よう
893デフォルトの名無しさん
2017/10/17(火) 18:28:45.12ID:hVetZd8l verilogやHLSLのどこがC言語なんだよ。
894デフォルトの名無しさん
2017/10/17(火) 18:47:35.04ID:HbTCC5+E >>893
そんなことを書いてるのはお前だけ
そんなことを書いてるのはお前だけ
895デフォルトの名無しさん
2017/10/17(火) 21:42:56.86ID:0HMqhgUO >>889
汎用とか特化に食いついてるのではなくて、「事実上消えた」ってところと、「自分で書くプログラムでそこまで想定することはまず無いわな」の部分に食いついているんだけどね。
汎用とか特化に食いついてるのではなくて、「事実上消えた」ってところと、「自分で書くプログラムでそこまで想定することはまず無いわな」の部分に食いついているんだけどね。
896デフォルトの名無しさん
2017/10/17(火) 21:46:38.99ID:0HMqhgUO 組み込みの世界が特化という点は反論しないし、ぶっちゃけどうでもいい。
でも、特化してるからって、別に消えてないし、仕事で普通に気にしてるし。
でも、特化してるからって、別に消えてないし、仕事で普通に気にしてるし。
897はちみつ餃子 ◆8X2XSCHEME
2017/10/18(水) 02:21:26.88ID:8euWiZGY >>895-896
「それなりに広く使われているアーキテクチャとしては」と限定して書いているのは、
そうでないアーキテクチャでは残っていることは承知しているという意味だよ。
自分ってのはまさに「私」のことなので実際気にする場面に遭遇したことがないし、
それをどうこう言われても俺に組込み系の仕事をして欲しいというのでもなけりゃ何の意味があるのかわからん。
「それなりに広く使われているアーキテクチャとしては」と限定して書いているのは、
そうでないアーキテクチャでは残っていることは承知しているという意味だよ。
自分ってのはまさに「私」のことなので実際気にする場面に遭遇したことがないし、
それをどうこう言われても俺に組込み系の仕事をして欲しいというのでもなけりゃ何の意味があるのかわからん。
898デフォルトの名無しさん
2017/10/18(水) 04:12:20.13ID:aws8n6lY C/C++てもう組込用途しか需要無いんですか?
899はちみつ餃子 ◆8X2XSCHEME
2017/10/18(水) 04:51:52.35ID:8euWiZGY んなこたーない。
900デフォルトの名無しさん
2017/10/18(水) 05:22:14.83ID:Wqkl1Wvb JavaやC#、その他の高級言語、スクリプト言語で済むならそこにはC/C++の出番はない。
組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
901デフォルトの名無しさん
2017/10/18(水) 06:54:18.33ID:lHCL+31V902デフォルトの名無しさん
2017/10/18(水) 07:45:33.63ID:AKs1AZwU 個人的な主観をさも一般論かのように書かれるのは迷惑だな
903デフォルトの名無しさん
2017/10/18(水) 08:56:09.82ID:at3yxigr904デフォルトの名無しさん
2017/10/18(水) 09:00:16.16ID:at3yxigr >>897
あともう一つ、君の今いる世界が、世間一般とは限らないから。
あともう一つ、君の今いる世界が、世間一般とは限らないから。
905デフォルトの名無しさん
2017/10/18(水) 10:03:33.10ID:NAca40Iu 並行世界か。
906はちみつ餃子 ◆8X2XSCHEME
2017/10/18(水) 11:38:55.90ID:8euWiZGY907デフォルトの名無しさん
2017/10/18(水) 11:55:04.11ID:LfPioRS3 8bitでない処理系とかの話になるとすぐ荒れるよな
客観的に見ると、噛み付いてる組み込みの連中の方が支離滅裂だよ
脊髄反射する前に一連のレス読み直した方がいい
客観的に見ると、噛み付いてる組み込みの連中の方が支離滅裂だよ
脊髄反射する前に一連のレス読み直した方がいい
908デフォルトの名無しさん
2017/10/18(水) 12:15:35.97ID:NAca40Iu VSはよく出来てるからMSから取り上げて国連で管理するべき。
909デフォルトの名無しさん
2017/10/18(水) 12:16:43.65ID:NAca40Iu 国連移管後のVSは戦略物資として利用者を追跡するべき。
910デフォルトの名無しさん
2017/10/18(水) 12:54:25.64ID:lHCL+31V911デフォルトの名無しさん
2017/10/18(水) 13:11:40.64ID:oy9jxwBz 907だが、本気でそう思うなら頭沸いてるぞ
912デフォルトの名無しさん
2017/10/18(水) 15:39:35.53ID:NAca40Iu 病院に連れて行ったほうが良い。
913デフォルトの名無しさん
2017/10/18(水) 20:02:41.54ID:3bYwz/rX armとインテルだけで世界が回ってると思ってるのかな
914デフォルトの名無しさん
2017/10/18(水) 21:03:18.48ID:lHCL+31V 本気でそう思うからお前らがまず受診してこいよ w
お前らの世間狭すぎるだろ
お前らの世間狭すぎるだろ
915デフォルトの名無しさん
2017/10/18(水) 23:53:45.00ID:oy9jxwBz >>879の
>アーキテクチャが事実上消えた
組み込み系じゃない俺でもさすがに消えてないとは思うが、
まず基本的に1バイトの定義がはっきりして、さらにコンピュータの性能進化とともに
特殊な処理系が減っていくならそれ自体は良いことじゃねーの?
>>868辺りからの流れに対して無意味な罵倒してるのはお前らだろ
特殊な処理系を知ってるのがお前らのアイデンティティなの?ww
あと
>>895
>「自分で書くプログラムでそこまで想定することはまず無いわな」
俺もまず想定しないよ、リトルエンディアンですら気にしたことない
気にするのは必要になってからだ、まず必要にならないのに想定してコスト増やすのはただの給料泥棒
>アーキテクチャが事実上消えた
組み込み系じゃない俺でもさすがに消えてないとは思うが、
まず基本的に1バイトの定義がはっきりして、さらにコンピュータの性能進化とともに
特殊な処理系が減っていくならそれ自体は良いことじゃねーの?
>>868辺りからの流れに対して無意味な罵倒してるのはお前らだろ
特殊な処理系を知ってるのがお前らのアイデンティティなの?ww
あと
>>895
>「自分で書くプログラムでそこまで想定することはまず無いわな」
俺もまず想定しないよ、リトルエンディアンですら気にしたことない
気にするのは必要になってからだ、まず必要にならないのに想定してコスト増やすのはただの給料泥棒
916デフォルトの名無しさん
2017/10/18(水) 23:59:19.56ID:oy9jxwBz 間違えた、ビッグエンディアンだった
リトルエンディアンの環境でしか書いたことないし、俺の場合は多分今後も無いので。
リトルエンディアンの環境でしか書いたことないし、俺の場合は多分今後も無いので。
917デフォルトの名無しさん
2017/10/19(木) 00:31:08.38ID:4jS9VIw9 Cが使われるような用途ではバイナリレベルの話は必須のはずだが。IF仕様で必ず指定あるだろ。
918デフォルトの名無しさん
2017/10/19(木) 08:27:23.91ID:hylRky7G 引っ込みつかなくなった井の中の ID:oy9jxwBz 乙 w
919デフォルトの名無しさん
2017/10/19(木) 09:17:54.41ID:Guom/JOK さすがに>>880は乱暴過ぎると思うぞ
920デフォルトの名無しさん
2017/10/19(木) 11:09:01.22ID:Ka5Awqhg921デフォルトの名無しさん
2017/10/19(木) 12:45:12.45ID:hylRky7G922デフォルトの名無しさん
2017/10/19(木) 13:08:04.36ID:Ka5Awqhg923デフォルトの名無しさん
2017/10/19(木) 14:15:39.49ID:qgTZ/C3n 普通に自信あるなら論点のみ論破して後スルーでよくね?
924デフォルトの名無しさん
2017/10/19(木) 21:51:19.20ID:AKvCLhcx > ハードの制約や特殊な環境というのがCPUにしか無いと思ってる
引っ込みつかなくなって話をそらそうと必死だな w
引っ込みつかなくなって話をそらそうと必死だな w
925デフォルトの名無しさん
2017/10/19(木) 23:46:58.92ID:6TDKNKTM ハネウェルの9ビットは汎用コンピュータだけどな
926はちみつ餃子 ◆8X2XSCHEME
2017/10/21(土) 00:01:02.62ID:piER3a9b 多くの職をなるべく均等に育成する方針でいたんだけど、
まずはどれでもいいからレベル上げして高レベルの宝の地図をゲットしたら育成なんていくらでも出来るな。
完全に失敗だわ。
仕方がないのでウォルロ北東の高台ではぐれメタル相手にレベル上げしてる。
まずはどれでもいいからレベル上げして高レベルの宝の地図をゲットしたら育成なんていくらでも出来るな。
完全に失敗だわ。
仕方がないのでウォルロ北東の高台ではぐれメタル相手にレベル上げしてる。
928デフォルトの名無しさん
2017/10/21(土) 01:26:13.78ID:01QdRZD5 どのスレか特定してやる
929デフォルトの名無しさん
2017/10/21(土) 08:05:22.19ID:RIH/f2PJ ドラクエ9かな
930デフォルトの名無しさん
2017/10/21(土) 09:07:27.71ID:FoEY9rcC ウォルロ
確定ですね
確定ですね
931デフォルトの名無しさん
2017/10/27(金) 15:14:51.06ID:BaiBMwP3 typedef size_t size_type;
こういうコードを良く見るんですが、これは何のためにやってるんでしょうか?
こういうコードを良く見るんですが、これは何のためにやってるんでしょうか?
933デフォルトの名無しさん
2017/10/27(金) 15:47:51.76ID:C4KpdBNl conanのようなパッケージマネージャってどうなの?
使ってる人ー?
使ってる人ー?
934デフォルトの名無しさん
2017/10/27(金) 16:29:53.23ID:8v9HsLU9 驚きの柔軟剤ふわふわファーファ。
935デフォルトの名無しさん
2017/10/27(金) 20:57:21.79ID:qcblY/zy クラスの静的メンバー変数って何に使うんですあk?
936デフォルトの名無しさん
2017/10/27(金) 21:06:52.03ID:/LUCvRWS オブジェクトを横断して共有したい情報の保持
何個実体作ったっけ?ってカウントしたり
何個実体作ったっけ?ってカウントしたり
937デフォルトの名無しさん
2017/10/27(金) 21:23:23.67ID:BaiBMwP3 型を抽象化とはsize_tをsize_typeでオーバーライドすると言う意味で
型の切り替えとはsize_tとsize_typeを使い分けるということでしょうか?
型の切り替えの意味が合っているとしたら、中身が同じものを使い分ける事なんてあるんですか?
型の切り替えとはsize_tとsize_typeを使い分けるということでしょうか?
型の切り替えの意味が合っているとしたら、中身が同じものを使い分ける事なんてあるんですか?
938デフォルトの名無しさん
2017/10/27(金) 21:44:14.01ID:M7vRAAca 例えば何かの都合でsize_typeをssize_tにした方がよいとなった場合にtypedefを一行変更するだけで済む
他の部分はsize_typeという型で抽象化されているから簡単に切り替えられるということ
他の部分はsize_typeという型で抽象化されているから簡単に切り替えられるということ
939デフォルトの名無しさん
2017/10/27(金) 23:53:57.84ID:BaiBMwP3940デフォルトの名無しさん
2017/10/28(土) 00:20:18.16ID:n4Ie7UZ/ >>939
いや、べつに
いや、べつに
941デフォルトの名無しさん
2017/10/28(土) 05:57:50.48ID:KtZXeElz typedef unsigned int Uint;
typedef unsigned int MyResID;
typedef unsigned int MyID;
例えば、Uint だと意味が分からないから、
リソース番号なら、MyResID
自分のID なら、MyID
などと再定義して、用途を分けておくと、見た目にも分かりやすい
「c typedef」で検索!
typedef unsigned int MyResID;
typedef unsigned int MyID;
例えば、Uint だと意味が分からないから、
リソース番号なら、MyResID
自分のID なら、MyID
などと再定義して、用途を分けておくと、見た目にも分かりやすい
「c typedef」で検索!
942デフォルトの名無しさん
2017/10/28(土) 11:30:31.16ID:aIwzbvt/ 変数名でわかるじゃん
943デフォルトの名無しさん
2017/10/28(土) 11:45:42.58ID:UQLb/21G 見た目が分かりやすいからsize_tをsize_typeにすると>>941は思ったのだろうか
944デフォルトの名無しさん
2017/10/28(土) 12:16:56.59ID:5IbYoyZ3 >>941
それは見た目で用途が分かりやすいというだけでなく、ある用途の場合だけ型を変更し易いという利点が主じゃないかな?
例えばMyResIDは当初は整数で良かったけど後で文字列に変更したくなったとか。
それは見た目で用途が分かりやすいというだけでなく、ある用途の場合だけ型を変更し易いという利点が主じゃないかな?
例えばMyResIDは当初は整数で良かったけど後で文字列に変更したくなったとか。
945デフォルトの名無しさん
2017/10/28(土) 12:33:49.13ID:MyIroYJQ MyResIDは8桁の数字を取り扱うんだけど、
intが16bitの環境に移植することになった…なんて時に便利
intが16bitの環境に移植することになった…なんて時に便利
946デフォルトの名無しさん
2017/10/31(火) 12:46:46.26ID:KJARTkQB >>931
よく見るってどこでよく見るの?
よく見るってどこでよく見るの?
947デフォルトの名無しさん
2017/10/31(火) 13:08:37.17ID:0cbtiG+h テンプレートなんかでよく見るvalue_typeみたいなもんかね
948デフォルトの名無しさん
2017/10/31(火) 18:04:33.78ID:vd1YUsZz >>900
>組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
言語系自体(C#/Java) は C/C++ で書かれているんじゃない?C/C++ 以外で記述されたエディター、というのも思い当たらないね
>組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
言語系自体(C#/Java) は C/C++ で書かれているんじゃない?C/C++ 以外で記述されたエディター、というのも思い当たらないね
949デフォルトの名無しさん
2017/10/31(火) 18:23:56.52ID:TOtCAKzB >>948
Atom, Visual Studio Code
Atom, Visual Studio Code
950デフォルトの名無しさん
2017/10/31(火) 18:52:57.69ID:QkT+8axj >>948
Vz
Vz
951デフォルトの名無しさん
2017/10/31(火) 19:10:34.72ID:xyLQL02T952デフォルトの名無しさん
2017/10/31(火) 20:51:58.22ID:3JCeBBQH >>949
Electronに使われてるV8がC++だがな
Electronに使われてるV8がC++だがな
953デフォルトの名無しさん
2017/11/01(水) 07:12:46.61ID:UcxIkq8e クラス定義でサンプル見るとprivate:が書いてあるのばかりだけど
クラスはデフォルトでpraivateだから書く必要ないよね
可読性のために書いてるの?
クラスはデフォルトでpraivateだから書く必要ないよね
可読性のために書いてるの?
954デフォルトの名無しさん
2017/11/01(水) 07:32:02.47ID:qOYb+y+r >>952
それは英語で書いてるよねって見方と一緒
それは英語で書いてるよねって見方と一緒
955デフォルトの名無しさん
2017/11/01(水) 08:05:04.65ID:1pZzHGIc956デフォルトの名無しさん
2017/11/01(水) 09:32:55.92ID:hOs9b/I4 >>953
class aaa
{
public:
//メンバ関数−上の方が目立つ?
private:
//メンバ変数−下の方にこそっと?
}
みたいな書き方が一部で流行してるからってだけでは?
実際、流行してるのか否かも知らんが
class aaa
{
public:
//メンバ関数−上の方が目立つ?
private:
//メンバ変数−下の方にこそっと?
}
みたいな書き方が一部で流行してるからってだけでは?
実際、流行してるのか否かも知らんが
957デフォルトの名無しさん
2017/11/01(水) 19:35:21.85ID:nkaKR7E8 >>953
綴りも覚えられないようなボンクラは書かないで済むなら書きたくないって思うんだろうな w
綴りも覚えられないようなボンクラは書かないで済むなら書きたくないって思うんだろうな w
958デフォルトの名無しさん
2017/11/01(水) 20:04:14.14ID:qg2RuF/n こういうクラスメソッドがあれば便利だな〜
一番上にpublicで追加したろ
ってなった時に巻き添えでpublicにしないように
一番上にpublicで追加したろ
ってなった時に巻き添えでpublicにしないように
959デフォルトの名無しさん
2017/11/01(水) 20:23:43.72ID:GUg4tmKS unordered_mapの時間オーダーはランダムアクセスがo(N)で検索がo(1)ですよね?
以下を見ると逆になってるのだすが間違いですよね?
https://qiita.com/h_hiro_/items/a83a8fd2391d4a3f0e1c#all_table
以下を見ると逆になってるのだすが間違いですよね?
https://qiita.com/h_hiro_/items/a83a8fd2391d4a3f0e1c#all_table
960デフォルトの名無しさん
2017/11/01(水) 20:59:34.54ID:M3kcqSwB961デフォルトの名無しさん
2017/11/01(水) 21:01:07.22ID:4wUVM0HB 画像処理についての質問です
下記コードのループ1のframeTestとループ2のframeTest2で出来上がる画像が違うのは何故なんでしょうか?
(frameTestは緑一色、frameTest2は緑赤青の3色)
使っているのはvisual studio2017です
コード http://codepad.org/IHZhOf8h
下記コードのループ1のframeTestとループ2のframeTest2で出来上がる画像が違うのは何故なんでしょうか?
(frameTestは緑一色、frameTest2は緑赤青の3色)
使っているのはvisual studio2017です
コード http://codepad.org/IHZhOf8h
962デフォルトの名無しさん
2017/11/01(水) 21:20:00.76ID:xoMVkOKP TestIm[] が想定してる並びになってない
1回目のループ中に 実は書き壊してるw
なので 2回目のループの時は 参照だけしてるはずなのに同じにならない
インデックスの式 Testwidth*y + x*3 + 0〜2(色)
1行あたりのバイト数が Testwidth で見積もってる式になってるからね
1回目のループ中に 実は書き壊してるw
なので 2回目のループの時は 参照だけしてるはずなのに同じにならない
インデックスの式 Testwidth*y + x*3 + 0〜2(色)
1行あたりのバイト数が Testwidth で見積もってる式になってるからね
963デフォルトの名無しさん
2017/11/01(水) 21:36:50.34ID:xoMVkOKP Testwidth * 3 * y + x * 3 + 0〜2
これで望みの形になると思うよ
W * H 次元の空間を 1次元で並べるなら W * y + x
W * H * C 次元の並びは (W * y + x) * C + color → W * C * y + C * x + color
こんな感じ
これで望みの形になると思うよ
W * H 次元の空間を 1次元で並べるなら W * y + x
W * H * C 次元の並びは (W * y + x) * C + color → W * C * y + C * x + color
こんな感じ
964デフォルトの名無しさん
2017/11/01(水) 21:41:14.25ID:4wUVM0HB965デフォルトの名無しさん
2017/11/01(水) 21:56:38.47ID:GUg4tmKS >>960
すみません、ランダムアクセスと検索を逆に指してました。
前者がoperator []、後者がfindですよね。
unordered_setは検索がo(1)なのでunordered_mapも同じかと思ってました。
ハッシュテーブル系はo(1)になると思っていたのですが、そうでもないのでしょうか?
すみません、ランダムアクセスと検索を逆に指してました。
前者がoperator []、後者がfindですよね。
unordered_setは検索がo(1)なのでunordered_mapも同じかと思ってました。
ハッシュテーブル系はo(1)になると思っていたのですが、そうでもないのでしょうか?
966デフォルトの名無しさん
2017/11/01(水) 22:44:25.89ID:M3kcqSwB >>965
> 前者がoperator []、後者がfindですよね。
これが違う
あのページでいうunordered_mapに対する『検索』は
(key, value)ペアのvalueが指定した値と等しい要素を探す処理(要するに逆引き)のこと
となるとkeyとは無関係な処理なため全要素を順次走査することになるからO(n)になる
> 前者がoperator []、後者がfindですよね。
これが違う
あのページでいうunordered_mapに対する『検索』は
(key, value)ペアのvalueが指定した値と等しい要素を探す処理(要するに逆引き)のこと
となるとkeyとは無関係な処理なため全要素を順次走査することになるからO(n)になる
967デフォルトの名無しさん
2017/11/01(水) 23:27:07.64ID:kBuKLW51 >>965
O(1)になる検索のアルゴリズムなんてねえよ
O(1)になる検索のアルゴリズムなんてねえよ
968デフォルトの名無しさん
2017/11/01(水) 23:32:44.98ID:Oby+I+5u Hash は、O(1)
HTree とか、衝突(シノニム)時に2分探索になるが、それもまれ
HTree とか、衝突(シノニム)時に2分探索になるが、それもまれ
969デフォルトの名無しさん
2017/11/02(木) 07:12:51.03ID:BfnVxeM2 >>967
Hashも知らんのかよ...
Hashも知らんのかよ...
970デフォルトの名無しさん
2017/11/02(木) 07:23:18.79ID:b+wcFKOg 検索っていうか、辞書引きだな
971デフォルトの名無しさん
2017/11/02(木) 08:18:33.66ID:KKkRrWi/ 本筋と関係ないけど、O(n)とo(n)は意味が全然違うので注意
972デフォルトの名無しさん
2017/11/02(木) 09:09:16.73ID:rFzi+Leg wacomのサンプルコードについて質問です
http://wdnet.jp/library/windows
ここのMFCデモのdemobiew.cpp内にある
http://codepad.org/hUs8JI4t
このlc.lcInExtXはなんの値を指しているのでしょうか
自分の環境ではこの値を適当な定数にしなければペンとカーソルの位置が一致しません
http://wdnet.jp/library/windows
ここのMFCデモのdemobiew.cpp内にある
http://codepad.org/hUs8JI4t
このlc.lcInExtXはなんの値を指しているのでしょうか
自分の環境ではこの値を適当な定数にしなければペンとカーソルの位置が一致しません
973デフォルトの名無しさん
2017/11/02(木) 11:24:52.00ID:+ai7GGRX974デフォルトの名無しさん
2017/11/02(木) 13:25:09.29ID:fgcqUQ// >>972
公式にドキュメントがあるなら一通りは目をとおしな
http://wdnet.jp/library/windows/wintab#2.3
> 2.3 Wintabの初期化
...
> 2.スケーリングの初期化について
> 以下のように、LOGCONTEXT の値を初期化する事でスケールの設定を行います。
...
> A lcInExtX,lcInExtY にタブレットの入力最大座標
公式にドキュメントがあるなら一通りは目をとおしな
http://wdnet.jp/library/windows/wintab#2.3
> 2.3 Wintabの初期化
...
> 2.スケーリングの初期化について
> 以下のように、LOGCONTEXT の値を初期化する事でスケールの設定を行います。
...
> A lcInExtX,lcInExtY にタブレットの入力最大座標
975sage
2017/11/02(木) 19:37:23.87ID:Vcb2n/8t 以下,かっこよくなりませんか?
while文の条件がダサすぎるので何とかしたい.
std::array は使わず,2次元の生配列でお願い.
以下,ソース.
#include <iostream>
#include <cstdlib>
#include <fstream>
int main(){
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
while( fin >> data[i][0] >> data[i][1] >> data[i][2] >> data[i][3] ){
for( int j=0; j<4; ++j )
std::cout << data[i][j] << " ";
std::cout << std::endl;
++i;
}
return EXIT_SUCCESS;
}
while文の条件がダサすぎるので何とかしたい.
std::array は使わず,2次元の生配列でお願い.
以下,ソース.
#include <iostream>
#include <cstdlib>
#include <fstream>
int main(){
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
while( fin >> data[i][0] >> data[i][1] >> data[i][2] >> data[i][3] ){
for( int j=0; j<4; ++j )
std::cout << data[i][j] << " ";
std::cout << std::endl;
++i;
}
return EXIT_SUCCESS;
}
976デフォルトの名無しさん
2017/11/02(木) 20:37:36.68ID:j119FHt+ はい。なります。
977デフォルトの名無しさん
2017/11/02(木) 20:43:01.12ID:RVlmQZC9 十分格好いいです
978デフォルトの名無しさん
2017/11/02(木) 20:49:14.23ID:QvGPm7pP 読むのと書くのを関数に分けるべきかな
979はちみつ餃子 ◆8X2XSCHEME
2017/11/02(木) 23:14:01.04ID:4tfXXWiS >>975
個人的にはこんな感じにするかな……。
#include <iostream>
#include <fstream>
std::istream& operator>>(std::istream& in, double (&data)[4]) {
for(auto& e: data) in >> e;
return in;
}
std::ostream& operator<<(std::ostream& out, double (&data)[4]) {
for(auto e: data) out << e << " ";
return out;
}
int main(void) {
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
for(auto& data_line: data) {
if((fin>>data_line).fail()) break;
std::cout << data_line << std::endl;
}
return EXIT_SUCCESS;
}
配列のままがお望みらしいのでこう書いたけど、専用の型を用意した方が綺麗っちゃ綺麗
個人的にはこんな感じにするかな……。
#include <iostream>
#include <fstream>
std::istream& operator>>(std::istream& in, double (&data)[4]) {
for(auto& e: data) in >> e;
return in;
}
std::ostream& operator<<(std::ostream& out, double (&data)[4]) {
for(auto e: data) out << e << " ";
return out;
}
int main(void) {
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
for(auto& data_line: data) {
if((fin>>data_line).fail()) break;
std::cout << data_line << std::endl;
}
return EXIT_SUCCESS;
}
配列のままがお望みらしいのでこう書いたけど、専用の型を用意した方が綺麗っちゃ綺麗
980デフォルトの名無しさん
2017/11/03(金) 00:03:21.41ID:4eJ/7N9T >>975
while( [&]{ for(auto& e: data[i]) fin >> e; }(), fin.good() ){
for( auto& e: data[i] )
std::cout << e << " ";
while( [&]{ for(auto& e: data[i]) fin >> e; }(), fin.good() ){
for( auto& e: data[i] )
std::cout << e << " ";
981デフォルトの名無しさん
2017/11/03(金) 00:49:56.36ID:LOXVFC/o 975です,sage方法すら忘れててすまぬ.
>>976
そのソースを示してくれると嬉しい
>>977
いや,これだと生理的にダメなんすよ
>>978, 979
大層なことするわけじゃないからなるべく短く行きたいんや
>>980
つか,whileの条件式に登場する , は何ぞや,なレベル.
以下のソースだと,ラムダ式部分に警告 expression result unused が出る.
バイナリは吐くが,実行すると大量のコンソール出力があり,
しかも全く読めていないっぽいうえ,Segmentation faultしやがる.
以下,試したソース
#include <iostream>
#include <cstdlib>
#include <fstream>
int main(){
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
while( [&]{ for( auto& e : data[i] ) fin >> e; }, fin.good() ) {
for( auto& e : data[i] ) std::cout << e << " ";
std::cout << std::endl;
++i;
}
return EXIT_SUCCESS;
}
>>976
そのソースを示してくれると嬉しい
>>977
いや,これだと生理的にダメなんすよ
>>978, 979
大層なことするわけじゃないからなるべく短く行きたいんや
>>980
つか,whileの条件式に登場する , は何ぞや,なレベル.
以下のソースだと,ラムダ式部分に警告 expression result unused が出る.
バイナリは吐くが,実行すると大量のコンソール出力があり,
しかも全く読めていないっぽいうえ,Segmentation faultしやがる.
以下,試したソース
#include <iostream>
#include <cstdlib>
#include <fstream>
int main(){
std::ifstream fin( "xxx.txt", std::ios::in );
double data[6][4];
int i = 0;
while( [&]{ for( auto& e : data[i] ) fin >> e; }, fin.good() ) {
for( auto& e : data[i] ) std::cout << e << " ";
std::cout << std::endl;
++i;
}
return EXIT_SUCCESS;
}
982デフォルトの名無しさん
2017/11/03(金) 01:05:35.02ID:4eJ/7N9T983デフォルトの名無しさん
2017/11/03(金) 01:56:10.83ID:LOXVFC/o >>982
カンマ演算子か.なるほど.
whileの条件式に与えたラムダ式を評価してその成否は破棄しつつ
カンマ演算子の右にあるfinがまだ使えるかどうか,
で処理継続の可否を判断している,という理解でいいのかな.
でも,981のソースだと,while文が終わらずに,無限ループに突入しているもよう.
この現象を説明しつつ,問題を解決するソースをくれると喜びます.
カンマ演算子か.なるほど.
whileの条件式に与えたラムダ式を評価してその成否は破棄しつつ
カンマ演算子の右にあるfinがまだ使えるかどうか,
で処理継続の可否を判断している,という理解でいいのかな.
でも,981のソースだと,while文が終わらずに,無限ループに突入しているもよう.
この現象を説明しつつ,問題を解決するソースをくれると喜びます.
984デフォルトの名無しさん
2017/11/03(金) 04:19:30.63ID:4eJ/7N9T985デフォルトの名無しさん
2017/11/03(金) 06:53:03.34ID:LOXVFC/o 975です,
>>981 のソースでいう
while( [&]{ for( auto& e : data[i] ) fin >> e; }, fin.good() ) {
を
while( [&]{ for( auto& e : data[i] ) fin >> e; }(), fin.good() ) {
にしたら正常に動作しました.
まずはありがとうでした.
>>981 のソースでいう
while( [&]{ for( auto& e : data[i] ) fin >> e; }, fin.good() ) {
を
while( [&]{ for( auto& e : data[i] ) fin >> e; }(), fin.good() ) {
にしたら正常に動作しました.
まずはありがとうでした.
986デフォルトの名無しさん
2017/11/03(金) 16:37:14.49ID:t+2N1bPb c++初心者向けの名著コードない?
987デフォルトの名無しさん
2017/11/03(金) 20:48:45.38ID:fZH3r81G お前の頭は既にしてバーコードだろ?
988デフォルトの名無しさん
2017/11/03(金) 20:59:39.93ID:t+2N1bPb 坊主頭なんだが、ストレスで10円ハゲがたくさんできてQRコードだ。安心しろ。
989デフォルトの名無しさん
2017/11/04(土) 09:57:38.12ID:io7R91TU char a[8]="12 34 56";
と言うのがあったとして
これを数値の123456にしたい時、一番速い書き方ってどんなだろうか
と言うのがあったとして
これを数値の123456にしたい時、一番速い書き方ってどんなだろうか
990デフォルトの名無しさん
2017/11/04(土) 10:21:35.26ID:KEPGzX0z991デフォルトの名無しさん
2017/11/04(土) 10:58:19.72ID:OnkwfBEU 普通に文字列の先頭から、数字が表れたら'0'との差を加算して桁上げして、ってのを繰り返すのが速いと思うが。
992デフォルトの名無しさん
2017/11/04(土) 11:09:08.10ID:XesRBOxx >>989 スレッド終盤に面白い問題を出してくれるなぁ。
a[8] と要素数を明示して "12 34 56" を代入する部分に罠の臭いを感じる。
'\0' 終端の一般的なCの文字列ではない、8byte専用のトリックが存在するのかも。
a[8] と要素数を明示して "12 34 56" を代入する部分に罠の臭いを感じる。
'\0' 終端の一般的なCの文字列ではない、8byte専用のトリックが存在するのかも。
993はちみつ餃子 ◆8X2XSCHEME
2017/11/04(土) 11:29:59.70ID:oNhsu9lL 条件次第ではあるけど、
平均的には標準で用意されている関数を使うのがまともな速さになると思う。
↓こんなの
*std::remove(std::begin(a), std::end(a), ' ') = '\0';
平均的には標準で用意されている関数を使うのがまともな速さになると思う。
↓こんなの
*std::remove(std::begin(a), std::end(a), ' ') = '\0';
994デフォルトの名無しさん
2017/11/04(土) 11:47:30.29ID:zGy4Oklk 速さってコーディンクの速さ?
実行速度?
実行速度?
995デフォルトの名無しさん
2017/11/04(土) 11:51:36.02ID:zGy4Oklk a[0]*100000+a[1]*10000+a[3]*1000+a[4]*100+a[6]*10+a[7]-'0'*(111111)
996デフォルトの名無しさん
2017/11/04(土) 11:59:30.61ID:zGy4Oklk int v = 0;
for (int i = 0 ; a[i] != '??0' ; i++){
if (a[i] == ' ')
continue;
v = v*10+(a[i]-'0');
}
for (int i = 0 ; a[i] != '??0' ; i++){
if (a[i] == ' ')
continue;
v = v*10+(a[i]-'0');
}
997デフォルトの名無しさん
2017/11/04(土) 12:28:06.26ID:io7R91TU みんなありがとう
>>991を参考にこんな感じでやってみたけど、どうなんだろうか。
#include <stdio.h>
#include<time.h>
int main(){
char a[8]="12 34 56";
int b;
clock_t c c;
c=clock();
for(int d=1000000000;d;d--){
b=10*(10*(10*(10*(10*(a[0])+a[1])+a[3])+a[4])+a[6])+a[7]-5333328;
}
printf("%d\n%.3f\n",b,(double)(clock()-c)/CLOCKS_PER_SEC);
}
スマホで書いたからミスってるかもw
>>991を参考にこんな感じでやってみたけど、どうなんだろうか。
#include <stdio.h>
#include<time.h>
int main(){
char a[8]="12 34 56";
int b;
clock_t c c;
c=clock();
for(int d=1000000000;d;d--){
b=10*(10*(10*(10*(10*(a[0])+a[1])+a[3])+a[4])+a[6])+a[7]-5333328;
}
printf("%d\n%.3f\n",b,(double)(clock()-c)/CLOCKS_PER_SEC);
}
スマホで書いたからミスってるかもw
998デフォルトの名無しさん
2017/11/04(土) 16:35:05.69ID:NYxCuvMY999デフォルトの名無しさん
2017/11/04(土) 20:16:28.54ID:wPtyVAZ4 文字化けしてる奴がMZくさい
1000はちみつ餃子 ◆8X2XSCHEME
2017/11/04(土) 20:57:59.73ID:oNhsu9lL 結果を整数で得たいならこういうのでもいいかな。
std::accumulate(std::begin(a), std::end(a), 0, [](int acc, int e) { return std::isdigit(e) ? acc*10+e-'0' : acc;})
std::accumulate(std::begin(a), std::end(a), 0, [](int acc, int e) { return std::isdigit(e) ? acc*10+e-'0' : acc;})
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 109日 13時間 50分 32秒
新しいスレッドを立ててください。
life time: 109日 13時間 50分 32秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 一律現金給付も消費減税もなし 高市内閣の経済対策に割れる世論 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 国分太一、地上波復帰は困難でもキャンプ趣味を活かしYouTubeで復帰するシナリオも「参戦すればキャンプYouTuberの人気の構図が一変」 [Ailuropoda melanoleuca★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 「そんなに米国が言う通りにやりたいのか」小泉氏、防衛費増額で立民・後藤祐一氏に反論 [少考さん★]
- 【テレビ】家入レオ 高校時代は親友なし 唯一の仲間が現在は超人気女優 「ずっとお互いに本を読んで」 [湛然★]
- 高市総理「農水大臣大好きお米券」 [237216734]
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- タモリ、高市早苗のモノマネを披露 [603416639]
- トランプ大統領、レーダー照射問題で沈黙貫く。高市政権は米側に「早く中国を叩く声明を出して!」と泣きつくも無視される [271912485]
- 中国「もはや高市の謝罪や撤回で済まされるフェーズは過ぎ去った。辞任以外の選択肢ない」 [271912485]
- 子供NISA導入で親ガチャ格差がさらに拡大か
