!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part163
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bbda-Axul)
2022/12/30(金) 23:16:31.37ID:DPUEZfMS052はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/04(水) 01:31:15.66ID:0JWM3k/l0 そうか? 言語機能に改定が必要なことならともかく
ライブラリは実績があるほうが通しやすいし、
標準に取り込まれなくても細かな便利機能がある Boost が衰退したとは感じないな。
サードパーティのライブラリを導入する手続きが面倒というのはよくある話だから
そういう面でもカバー範囲が広い Boost の出番は多いんじゃないの。
ライブラリは実績があるほうが通しやすいし、
標準に取り込まれなくても細かな便利機能がある Boost が衰退したとは感じないな。
サードパーティのライブラリを導入する手続きが面倒というのはよくある話だから
そういう面でもカバー範囲が広い Boost の出番は多いんじゃないの。
53デフォルトの名無しさん (ワッチョイ 977c-4W3V)
2023/01/04(水) 01:55:44.13ID:gfVJn8560 単純に必要な便利機能はあらかたC++標準の方に取り込まれてて
もうマイナーやマニアックな機能かゴミしか残ってないから使う機会なくなったわ
なんかこれ今でも便利だよってのある?
もうマイナーやマニアックな機能かゴミしか残ってないから使う機会なくなったわ
なんかこれ今でも便利だよってのある?
54デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/04(水) 02:11:04.13ID:CtSEqK7p0 >>53
他の言語ではとっくの昔に標準化されているXMLやJSONのパーサーが標準化されたら便利になると思うよ
他の言語ではとっくの昔に標準化されているXMLやJSONのパーサーが標準化されたら便利になると思うよ
55デフォルトの名無しさん (ワッチョイ 6301-9yt5)
2023/01/04(水) 02:42:57.82ID:DBMM4FaV0 >54
1.75でBoost.Jsonが入った。
1.75でBoost.Jsonが入った。
56デフォルトの名無しさん (ワッチョイ 6301-9yt5)
2023/01/04(水) 03:00:12.42ID:DBMM4FaV0 >>53
Boost.Beast。
Boost.Beast。
57デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/04(水) 14:34:57.16ID:q6K3KMhU058デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/04(水) 14:42:05.39ID:q6K3KMhU059デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/04(水) 18:00:15.11ID:CtSEqK7p0 うっかり標準化して負の遺産になってしまったiostreamでの失敗の知見のうえに今のC++があるってのはわかる
60デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/04(水) 18:07:51.27ID:q6K3KMhU0 ところでiostreamに変わるioを作って
標準に入れようという動きはないんですか?
標準に入れようという動きはないんですか?
61はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/04(水) 18:09:17.48ID:0JWM3k/l0 さすがに入出力の書式化を標準ライブラリとして用意しないわけにもいかんからな。
良いのが出来るまで先送りとは言えないんだからそのとき出来たものを入れるのはしょうがないんじゃないの。
良いのが出来るまで先送りとは言えないんだからそのとき出来たものを入れるのはしょうがないんじゃないの。
62はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/04(水) 18:18:11.23ID:0JWM3k/l0 >>60
私が把握してないけかもしれないけれどストリームの基本構造を変えようという大きな動きはない。
C++20 から書式化 (オブジェクトを文字列表現にする) は std::format として切り出されて、
書式の情報は std::formatter 型で扱うのでグローバルな状態に影響を与えるマニピュレータを使う必要はなくなった。
私が把握してないけかもしれないけれどストリームの基本構造を変えようという大きな動きはない。
C++20 から書式化 (オブジェクトを文字列表現にする) は std::format として切り出されて、
書式の情報は std::formatter 型で扱うのでグローバルな状態に影響を与えるマニピュレータを使う必要はなくなった。
63デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/04(水) 18:26:24.86ID:CtSEqK7p0 「作業ディレクトリ」という概念はプロセス全体でひとつでしたっけ。これはOS依存ですかね。
スレッド処理実行中に作業ディレクトリが変わるのは許容範囲かな
スレッド処理実行中に作業ディレクトリが変わるのは許容範囲かな
64デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/04(水) 18:40:11.15ID:q6K3KMhU065はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/04(水) 18:43:31.27ID:0JWM3k/l0 std::format の設計は Rust の std::fmt::Display と似てる感じがするね。
66デフォルトの名無しさん (ワッチョイ 4ecf-/EFQ)
2023/01/04(水) 23:47:37.00ID:PU4coe7B0 iostream はよくあんなもん公開する勇気が有ったな
67デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 00:04:17.98ID:wM/B2eC00 当時はC with Classesなんて研究をしてる人が珍しくて
やってる人のところへ見物に来る人がぞろぞろいたんだよ
禿にとって味方をつくることも大事な仕事で
先行きがまだ見えない試みも怯まず果敢に攻める必要があった
その当時の作品を今さら未来人がドヤ顔で揶揄しても
聞いてるのは当時の人じゃなく同じ未来人だぞ
おまえ自身がどんな批判に晒されるのか怖くないの?
・・・だから匿名掲示板なのか 失笑
やってる人のところへ見物に来る人がぞろぞろいたんだよ
禿にとって味方をつくることも大事な仕事で
先行きがまだ見えない試みも怯まず果敢に攻める必要があった
その当時の作品を今さら未来人がドヤ顔で揶揄しても
聞いてるのは当時の人じゃなく同じ未来人だぞ
おまえ自身がどんな批判に晒されるのか怖くないの?
・・・だから匿名掲示板なのか 失笑
68デフォルトの名無しさん (ワッチョイ 4ecf-/EFQ)
2023/01/05(木) 00:06:22.64ID:uFuuDD5j0 いや、発表当時から微妙な反応だったよ
ユーザーが求めてたのはオブジェクト指向で、
あんな実装じゃない
ユーザーが求めてたのはオブジェクト指向で、
あんな実装じゃない
69デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 00:11:53.94ID:wM/B2eC00 そういう手前味噌なおも鋳込みが激しいのもこの界隈だわな
おまえさんのようなシュトロハイム型のやつの受け流し方もみんな憶えてる
おまえさんのようなシュトロハイム型のやつの受け流し方もみんな憶えてる
70デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 00:12:40.81ID:wM/B2eC00 - おも鋳込み
+ 思い込み
+ 思い込み
71デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/05(木) 00:38:06.59ID:2y5++O3y0 そんなに不満なら何で自分で作らんの?
皆不満なら公開したら支持を集められるよ
皆不満なら公開したら支持を集められるよ
72デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/05(木) 00:45:23.91ID:Lgp3gkNr0 PowerShellのパイプに似たコレジャナイ感でしょうかね
なお、PowerShellのリダイレクトはさらなる魔改造のために温存されている模様
なお、PowerShellのリダイレクトはさらなる魔改造のために温存されている模様
73デフォルトの名無しさん (ワッチョイ 7f4e-/EFQ)
2023/01/05(木) 01:10:26.32ID:TNCZWrQ40 std::formatは整数が%d、浮動小数点が%f、文字列が%sのprintfに近い書式でよかったのに…
74デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/05(木) 06:48:29.39ID:O+NRT3S+0 >>72
PowerShell のパイプって特に変じゃ無いような気がするが...
PowerShell のパイプって特に変じゃ無いような気がするが...
75デフォルトの名無しさん (スプッッ Sd5a-kLll)
2023/01/05(木) 08:19:32.24ID:ImmyD00Ud パイプで渡すものがオブジェクトの配列なだけならまだしも、
要素数が0と1の時だけ特別な処理がかかるのは使い勝手を損ねてるだけだぞ
要素数が0と1の時だけ特別な処理がかかるのは使い勝手を損ねてるだけだぞ
76デフォルトの名無しさん (アウアウウー Sac7-yDM8)
2023/01/05(木) 11:10:59.66ID:Cbg+aaE9a >>68
ほんそれ
ほんそれ
77デフォルトの名無しさん (アウアウウー Sac7-yDM8)
2023/01/05(木) 11:12:50.46ID:Cbg+aaE9a >>75
便所や下水のPipeだね
便所や下水のPipeだね
78デフォルトの名無しさん (アウアウウー Sac7-+uJR)
2023/01/05(木) 11:14:43.82ID:l7rjlNbZa79デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 11:46:32.29ID:wM/B2eC00 >>68
発表当時って西暦年で言うといつだ?
発表当時って西暦年で言うといつだ?
80デフォルトの名無しさん (ブーイモ MMba-YJVE)
2023/01/05(木) 13:10:14.84ID:QwpX4kWAM 何を今更と思ったけど iostream 叩いとけばわかってる感出るってことなんですかね
81デフォルトの名無しさん (ワッチョイ 0712-CgFf)
2023/01/05(木) 13:13:50.03ID:MgmPxFQm082デフォルトの名無しさん (ブーイモ MMba-krXg)
2023/01/05(木) 13:20:30.85ID:EwWOYZLWM 実用上困ったことがない程度しかio使ってないのに養護するバカが他人をバカ呼ばわりして笑える
83デフォルトの名無しさん (スプッッ Sd5a-Hnty)
2023/01/05(木) 14:03:21.88ID:XWvG4X+rd 実用上どう困るのかを強い説得力で話すやつを見かけないな
84デフォルトの名無しさん (アウアウウー Sac7-yDM8)
2023/01/05(木) 14:11:12.67ID:Cbg+aaE9a またperlerが湧いてきたな
85デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/05(木) 14:42:05.42ID:O+NRT3S+086デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 14:48:29.85ID:wM/B2eC00 へーえ、printfならご満足なのか
87デフォルトの名無しさん (ワッチョイ 8b01-4uR0)
2023/01/05(木) 14:52:05.98ID:2y5++O3y0 マジで不満なら作ったらどうだ? IOくらい余裕でできるやろ?
88はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/05(木) 15:00:05.80ID:ojGp6ksg0 printf は型システム的にガバガバすぎるだろ。
書式と実引数が食い違っててもコンパイル時に検出されないこともあるし。
書式と実引数が食い違っててもコンパイル時に検出されないこともあるし。
89デフォルトの名無しさん (ワッチョイ f3c2-acQP)
2023/01/05(木) 15:19:01.89ID:wM/B2eC00 Bの関数をC++スレで持ち出してドヤァ
90デフォルトの名無しさん (オイコラミネオ MMe3-5E5I)
2023/01/05(木) 17:25:17.77ID:sQ9AithNM はちみつはいつもprintfをdisってるが、printfには捨て難い便利さがある。
91デフォルトの名無しさん (オイコラミネオ MMe3-5E5I)
2023/01/05(木) 18:01:34.63ID:sQ9AithNM >>90
補足すれば、cout系はメンドクサイ。書くのが非効率。
補足すれば、cout系はメンドクサイ。書くのが非効率。
92デフォルトの名無しさん (ワッチョイ 1a19-MqrI)
2023/01/05(木) 19:16:41.23ID:KjlTe/EQ0 仕方ないじゃん
当時はいいと思っちゃったんだから
何十年前ものアイデアを今の知見で考察しても仕方がない
当時はいいと思っちゃったんだから
何十年前ものアイデアを今の知見で考察しても仕方がない
93デフォルトの名無しさん (ワッチョイ 5b76-kLll)
2023/01/05(木) 19:55:51.72ID:N/v+WbZh094はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/05(木) 20:56:47.09ID:ojGp6ksg095デフォルトの名無しさん (ワッチョイ 9a01-9j0N)
2023/01/05(木) 21:36:43.88ID:O+NRT3S+0 >>93
どんなコード書いてるの?
PS C:\> function x {
>> param([parameter(ValueFromPipeline=$true)]$p)
>> begin { Write-Host 'BEGIN' }
>> process { Write-Host "PROCESS: $p" }
>> end { Write-Host 'END'}
>> }
PS C:\> @() | x
BEGIN
END
PS C:\> @(1) | x
BEGIN
PROCESS: 1
END
PS C:\> @(1,2) | x
BEGIN
PROCESS: 1
PROCESS: 2
END
PS C:\>
普通に動いてるけど?
どんなコード書いてるの?
PS C:\> function x {
>> param([parameter(ValueFromPipeline=$true)]$p)
>> begin { Write-Host 'BEGIN' }
>> process { Write-Host "PROCESS: $p" }
>> end { Write-Host 'END'}
>> }
PS C:\> @() | x
BEGIN
END
PS C:\> @(1) | x
BEGIN
PROCESS: 1
END
PS C:\> @(1,2) | x
BEGIN
PROCESS: 1
PROCESS: 2
END
PS C:\>
普通に動いてるけど?
96デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/05(木) 21:40:39.42ID:Lgp3gkNr0 iostreamは開発用ログの出力方法としては最適なんだけど、それ以上ではない感じ
97デフォルトの名無しさん (ワッチョイ 7a28-d25T)
2023/01/05(木) 22:43:53.60ID:QdQAlRIq0 ログ出力用に<<をオーバーロードしたら
バイナリ出力は別の手段を考えることに……
namespaceでオーバーロード内容をさらに区分するとかはできるのかどうか知らんがやりたくない、、、
バイナリ出力は別の手段を考えることに……
namespaceでオーバーロード内容をさらに区分するとかはできるのかどうか知らんがやりたくない、、、
98デフォルトの名無しさん (ワッチョイ 9aad-TwI4)
2023/01/05(木) 22:50:41.68ID:Lgp3gkNr0 printfだと、見たいオブジェクトの型に気にすることなくログ関数に突っ込む、という他の言語で当たり前にできることができない。
99デフォルトの名無しさん (ワッチョイ cebb-krXg)
2023/01/05(木) 23:36:19.07ID:91BZqTRI0 formatのお陰でもう議論する意味なんてないんだが、
17以前は
誰かが状態を書き換えてるかもしれないからいちいち保存と復元が必要、
文字列とコードが入り乱れていて、i18n化できない&何が書かれているかひと目で分からないから
到底実用的じゃない
会社で20が使えるようになったらiostreamに戻るよ…
17以前は
誰かが状態を書き換えてるかもしれないからいちいち保存と復元が必要、
文字列とコードが入り乱れていて、i18n化できない&何が書かれているかひと目で分からないから
到底実用的じゃない
会社で20が使えるようになったらiostreamに戻るよ…
100はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/05(木) 23:43:57.03ID:ojGp6ksg0 >>97
いくつかやり方はあると思うけど……。
同じストリームにログ出力用の表現とバイナリ表現の両方を出力する可能性があるなら
適当なクラスに包むだけでいいと思う。
こんな感じで書ければ十分でしょ。
Foo bar;
std::cout << binary_style(bar) << std::endl;
std::cout << log_style(bar) << std::endl;
Haskell でこんな感じで処理を切り替えるのをよく見た気がする。
だいぶん前にちょっと遊んだだけなのであまり覚えてないけど。
出力先によって表現を変えるのならストリームクラスを定義してしまえばいいと思う。
直接的な入出力はストリームバッファがやっていて、
書式化を担当するストリームがストリームバッファを所有するという構造がある。
オブジェクトの表現形式が大きく変わるとしたら出力先ごとに変えるという用途だろうから
こっちのほうが使い勝手が良い場合も多いかもしれない。
雑な例だけどこんな感じ。
https://wandbox.org/permlink/3AaOGSXLNCw2aNJv
いくつかやり方はあると思うけど……。
同じストリームにログ出力用の表現とバイナリ表現の両方を出力する可能性があるなら
適当なクラスに包むだけでいいと思う。
こんな感じで書ければ十分でしょ。
Foo bar;
std::cout << binary_style(bar) << std::endl;
std::cout << log_style(bar) << std::endl;
Haskell でこんな感じで処理を切り替えるのをよく見た気がする。
だいぶん前にちょっと遊んだだけなのであまり覚えてないけど。
出力先によって表現を変えるのならストリームクラスを定義してしまえばいいと思う。
直接的な入出力はストリームバッファがやっていて、
書式化を担当するストリームがストリームバッファを所有するという構造がある。
オブジェクトの表現形式が大きく変わるとしたら出力先ごとに変えるという用途だろうから
こっちのほうが使い勝手が良い場合も多いかもしれない。
雑な例だけどこんな感じ。
https://wandbox.org/permlink/3AaOGSXLNCw2aNJv
101デフォルトの名無しさん (オイコラミネオ MMe3-5E5I)
2023/01/06(金) 00:06:44.93ID:Pn7zd4wpM はちみつは、何かに忖度しているように感じるな。
職人は自分の腕で食っていくので忖度しないが、就職先を探すサラリーマンは忖度する。
職人は自分の腕で食っていくので忖度しないが、就職先を探すサラリーマンは忖度する。
102はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/06(金) 00:22:08.66ID:HDVxNHRA0 前にも書いたことがあるがワイはプログラミングは完全に趣味でやってるだけなので
プログラミングについて私が配慮すべき何者かなど存在せぇへんで。
プログラミングについて私が配慮すべき何者かなど存在せぇへんで。
103デフォルトの名無しさん (ワッチョイ 6301-9yt5)
2023/01/06(金) 00:30:02.38ID:fURAHMja0 じゃあ、はちみつ職人に改名しなよ。
104デフォルトの名無しさん (オイコラミネオ MMe3-5E5I)
2023/01/06(金) 00:32:36.82ID:Pn7zd4wpM なんか、何かにおべんちゃらしてるような感じを受ける。
105はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 633e-ChaJ)
2023/01/06(金) 00:41:45.62ID:HDVxNHRA0106デフォルトの名無しさん (スッップ Sdba-TbQk)
2023/01/06(金) 05:35:52.57ID:0M7CqxJ+d NGしやすくていいじゃんよ
107デフォルトの名無しさん (スプッッ Sdba-kLll)
2023/01/06(金) 07:56:26.71ID:vZ5ptmnXd >>95
@(...)は長さに関わらず強制的に配列にする書き方でしょ
@(...)は長さに関わらず強制的に配列にする書き方でしょ
108デフォルトの名無しさん (ワッチョイ 9a01-9j0N)
2023/01/06(金) 14:14:52.53ID:Zd/Zujyt0 >>107
だからどんなコード書いてるのよ?
PS C:\> 1, 2 | x
BEGIN
PROCESS: 1
PROCESS: 2
END
PS C:\> 1 | x
BEGIN
PROCESS: 1
END
PS C:\> | x
発生場所 行:1 文字:1
+ | x
+ ~
空のパイプ要素は許可されていません。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement
@ なくても特に変な動きとは思えないけど?
だからどんなコード書いてるのよ?
PS C:\> 1, 2 | x
BEGIN
PROCESS: 1
PROCESS: 2
END
PS C:\> 1 | x
BEGIN
PROCESS: 1
END
PS C:\> | x
発生場所 行:1 文字:1
+ | x
+ ~
空のパイプ要素は許可されていません。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement
@ なくても特に変な動きとは思えないけど?
109デフォルトの名無しさん (ワッチョイ 977c-4W3V)
2023/01/06(金) 21:07:55.59ID:tlJIs+7i0110デフォルトの名無しさん (JP 0Ha3-dD2o)
2023/01/09(月) 23:53:42.00ID:ainDXdRxH すみません拡張子についての質問ですけどここで聞いてもいいですか?
TeraPadでコードを入力し保存したらテキストドキュメントになってしまうのですが
どうやって拡張子を変えたらコマンドブロントと繋がるのでしょうか
すみません初心者なので分かりやすく教えてください
使ってるはwindows11です
TeraPadでコードを入力し保存したらテキストドキュメントになってしまうのですが
どうやって拡張子を変えたらコマンドブロントと繋がるのでしょうか
すみません初心者なので分かりやすく教えてください
使ってるはwindows11です
111デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
2023/01/10(火) 00:28:45.02ID:iF453DR40 explorerの設定で拡張子を表示しろ
あとコマンドプロンプトのつもりで書いたんだろうけど「繋がる」なんて状況が想像できんので何をしたいか書け
あとコマンドプロンプトのつもりで書いたんだろうけど「繋がる」なんて状況が想像できんので何をしたいか書け
112デフォルトの名無しさん (アウアウウー Sa85-AyIk)
2023/01/10(火) 00:58:24.28ID:tyEc5PEMa TeraPad は古いから、新し目の文字コードに対応していないので、サクラエディタを使え
プロは、VSCode, Windows Terminal などを使う
プロは、VSCode, Windows Terminal などを使う
113デフォルトの名無しさん (アウアウウー Sa85-BvPj)
2023/01/10(火) 02:05:23.85ID:wl4CEVDPa >>110
繋がるってのがよく分からないけど、バッチを作りたいなら拡張子を表示してから .bat に変更。プログラムを組みたいなら .cp p に変更だけどmakeファイルを書くつもりはないだろうから、VisualStudioを入れよう
繋がるってのがよく分からないけど、バッチを作りたいなら拡張子を表示してから .bat に変更。プログラムを組みたいなら .cp p に変更だけどmakeファイルを書くつもりはないだろうから、VisualStudioを入れよう
114デフォルトの名無しさん (アウアウウー Sa85-BvPj)
2023/01/10(火) 02:05:51.81ID:wl4CEVDPa .cpp ね
115デフォルトの名無しさん (テテンテンテン MM4b-Kria)
2023/01/10(火) 08:11:58.57ID:j5WRYhpwM >>110
他から指摘されているけど、初心者ならc++用の総合開発環境(IDE)をまずインストールして、IDEの初心者向けガイドをweb で検索して勉強するのが一番良い。
最近のWindowsだとVisual Studio Community Editionが初心者向きかね。
他から指摘されているけど、初心者ならc++用の総合開発環境(IDE)をまずインストールして、IDEの初心者向けガイドをweb で検索して勉強するのが一番良い。
最近のWindowsだとVisual Studio Community Editionが初心者向きかね。
116デフォルトの名無しさん (スプッッ Sdf3-j/Dr)
2023/01/10(火) 08:39:58.49ID:R5XG+hXYd117デフォルトの名無しさん (ワッチョイ b101-tb1I)
2023/01/10(火) 19:07:54.57ID:0yW4rCRf0 C言語の重力付き4目並べです、ここのコードを簡略化したいです。
int SetXpos(int player) // コマの置き場所を入力または探して盤を更新,コマの置き場所(0-6)を返す
{
int xpos = 0; // コマの置き場所
if ((choice == 2 && player == 2) || (choice == 3 && player == 1)) // コンピュータとの対戦の場合に,コンピュータの手を計算
{
xpos = ComputeXpos(player);
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("コンピュータは%dに置きます\n", xpos);
}
else // 人間の手を選択
{
while (1)
{
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("どこに置きますか? 0-6の数字を半角で入力してください: ");
scanf_s("%d", &xpos);
if ((0 <= xpos && xpos < XMAX) && (num[xpos] < YMAX)) // 置ける場所かどうか判定
break;
printf("%dには置けません!\n", xpos);
}
}
board[xpos][num[xpos]++] = player;// コマをxpos列に置き,xpos列のコマ数を1増やす
return xpos;
}
int SetXpos(int player) // コマの置き場所を入力または探して盤を更新,コマの置き場所(0-6)を返す
{
int xpos = 0; // コマの置き場所
if ((choice == 2 && player == 2) || (choice == 3 && player == 1)) // コンピュータとの対戦の場合に,コンピュータの手を計算
{
xpos = ComputeXpos(player);
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("コンピュータは%dに置きます\n", xpos);
}
else // 人間の手を選択
{
while (1)
{
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("どこに置きますか? 0-6の数字を半角で入力してください: ");
scanf_s("%d", &xpos);
if ((0 <= xpos && xpos < XMAX) && (num[xpos] < YMAX)) // 置ける場所かどうか判定
break;
printf("%dには置けません!\n", xpos);
}
}
board[xpos][num[xpos]++] = player;// コマをxpos列に置き,xpos列のコマ数を1増やす
return xpos;
}
118デフォルトの名無しさん (ワッチョイ 93f0-DSRP)
2023/01/10(火) 19:13:34.86ID:cUqvmTMn0 スレタイが読めないのかよ
119デフォルトの名無しさん (アウアウウー Sa85-DxjU)
2023/01/10(火) 22:47:40.35ID:g+dbPOkMa120デフォルトの名無しさん (ワッチョイ ab02-AyIk)
2023/01/11(水) 18:38:42.97ID:867Mv3q20 C++、Javaがペラペラなら生きていける。
121デフォルトの名無しさん (ワッチョイ 999c-RNTY)
2023/01/11(水) 20:16:16.63ID:tEiwqSvB0 今後はWebフロントエンドの技術もできないと生きていけないよ
122デフォルトの名無しさん (ワッチョイ e1c2-UnWz)
2023/01/11(水) 21:38:40.44ID:pdu3v6T80 職探しがよっぽど大変なのね
123デフォルトの名無しさん (ワッチョイ b101-K0Bq)
2023/01/11(水) 21:58:12.26ID:dMqhutWk0 この先生きのこれるかな?
124デフォルトの名無しさん (ワッチョイ c190-Pmdz)
2023/01/12(木) 14:41:54.35ID:74cXnlqp0125デフォルトの名無しさん (スプッッ Sdb3-j/Dr)
2023/01/12(木) 14:47:05.06ID:OEyZMQ5cd エリンギ舞茸ぶなしめじ
126デフォルトの名無しさん (ワッチョイ b101-tb1I)
2023/01/13(金) 06:37:30.78ID:CqT5d+dn0 @ if ((choice == 2 && player == 2) || (choice == 3 && player == 1))
A if (0 <= xpos && xpos < XMAX && num[xpos] < YMAX)
B board[xpos][num[xpos]++] = player;
C for (x = 0, y = ypos, n = 0; x < XMAX; x++)
D for (x = xpos, y = 0, n = 0; y <= ypos; y++)
E for (x = 0, y = ypos - xpos, n = 0; y < YMAX; x++, y++)
F for (x = xpos - ypos, y = 0, n = 0; x < XMAX; x++, y++)
G for (x = 0, y = xpos + ypos, n = 0; y >= 0; x++, y--)
H for (x = xpos + ypos - YMAX + 1, y = YMAX - 1, n = 0; x < XMAX; x++, y--)
の各条件文内でどーゆー計算、アルゴリズムがされてるか教えてくださる人いますか??
A if (0 <= xpos && xpos < XMAX && num[xpos] < YMAX)
B board[xpos][num[xpos]++] = player;
C for (x = 0, y = ypos, n = 0; x < XMAX; x++)
D for (x = xpos, y = 0, n = 0; y <= ypos; y++)
E for (x = 0, y = ypos - xpos, n = 0; y < YMAX; x++, y++)
F for (x = xpos - ypos, y = 0, n = 0; x < XMAX; x++, y++)
G for (x = 0, y = xpos + ypos, n = 0; y >= 0; x++, y--)
H for (x = xpos + ypos - YMAX + 1, y = YMAX - 1, n = 0; x < XMAX; x++, y--)
の各条件文内でどーゆー計算、アルゴリズムがされてるか教えてくださる人いますか??
127デフォルトの名無しさん (ワッチョイ 997c-ztiG)
2023/01/13(金) 07:14:01.38ID:Y56iKvHG0 宿題ならまず自分で考えてからどうしても分からない所だけ聞きに来い
128デフォルトの名無しさん (スプッッ Sdf3-j/Dr)
2023/01/13(金) 08:41:01.94ID:hjGlttN/d 宿題スレ行ったら?
129デフォルトの名無しさん (ワッチョイ b101-tb1I)
2023/01/13(金) 09:13:11.98ID:CqT5d+dn0 例えば@だと、&&が論理積、||が論理和ということだと思うんですけど、演算子が分かってもその条件文内で何が行われているかとかが分からないので知りたい状態なんです。。
130デフォルトの名無しさん (アウアウウー Sa85-DH5p)
2023/01/13(金) 09:44:58.05ID:NX/X2xhta131デフォルトの名無しさん (ワッチョイ 93ad-Or7w)
2023/01/13(金) 11:24:51.74ID:6wgE5XmR0 boostの存在意義ってことでいうと、マルチスレッドの並列ソートboost::sort::block_indirect_sort()が使えるのでLinuxなどは有益
Windowsの場合はVC++にconcurrency::parallel_buffered_sort()があるので使わないけど
Windowsの場合はVC++にconcurrency::parallel_buffered_sort()があるので使わないけど
132デフォルトの名無しさん (スプッッ Sdf3-1Rsz)
2023/01/13(金) 11:48:47.80ID:ZURbuhIed133はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 013e-DWwd)
2023/01/13(金) 16:10:50.14ID:ftt2O/+X0134デフォルトの名無しさん (ワッチョイ 999c-Kria)
2023/01/13(金) 17:16:42.47ID:DejIUh+t0 >126が宿題なら授業で演算子の評価順とか短絡評価とかやっているだろ。
ここで質問する前に授業ノートぐらい確認するなり先生に質問するなりしろよ。
ここで質問する前に授業ノートぐらい確認するなり先生に質問するなりしろよ。
135デフォルトの名無しさん (ワッチョイ 0101-K0Bq)
2023/01/13(金) 18:59:56.28ID:NgheavAf0 払った授業料のためにも教師に聞いとけって
136デフォルトの名無しさん (スプッッ Sdf3-NxcN)
2023/01/13(金) 19:05:47.85ID:+0WWfi2gd おまいら
ただのコピペだってのに
親切だな
ただのコピペだってのに
親切だな
137デフォルトの名無しさん (スプッッ Sdb3-j/Dr)
2023/01/13(金) 19:38:21.71ID:4yurTHZ1d マルチ警察は基本アホだから
138デフォルトの名無しさん (アウアウウー Sa91-91zk)
2023/01/14(土) 17:02:55.96ID:oDbFkQuTa 普通に単にソートしたい場合はどんなコードになる?
方言なしで
方言なしで
139デフォルトの名無しさん (ワッチョイ 297c-nj5L)
2023/01/14(土) 17:03:39.93ID:euxRDNh80 std::sortを使う
140デフォルトの名無しさん (ワッチョイ 1dc2-K8ze)
2023/01/15(日) 09:58:07.55ID:/n5l5Pop0 同じく
質問の意図がわからんな
質問の意図がわからんな
141デフォルトの名無しさん (ワッチョイ 6a28-TTdX)
2023/01/15(日) 18:50:51.76ID:IyvDeUGt0 質問なのですがintやdoubleといった単純な型のグローバル変数の初期化タイミングは
グローバルなオブジェクトの初期化タイミングより前であることが保証される?
多分 .dataセクションの初期化はグローバルなオブジェクトの初期化リストの実行より前だと思うんだけど
(そうでなければコンストラクタからC言語のライブラリを安心して呼べないということになる
規格的にそうなん?
グローバルなオブジェクトの初期化タイミングより前であることが保証される?
多分 .dataセクションの初期化はグローバルなオブジェクトの初期化リストの実行より前だと思うんだけど
(そうでなければコンストラクタからC言語のライブラリを安心して呼べないということになる
規格的にそうなん?
142はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed3e-w88e)
2023/01/15(日) 19:52:54.05ID:1ER4Wl/40 >>141
静的初期化と動的初期化に大別されている。
初期化子が定数 (定数式) のものは静的初期化で、
そうではないものが動的初期化。
静的初期化は動的初期化より先であることは言語仕様で保証される。
静的初期化と動的初期化に大別されている。
初期化子が定数 (定数式) のものは静的初期化で、
そうではないものが動的初期化。
静的初期化は動的初期化より先であることは言語仕様で保証される。
143デフォルトの名無しさん (テテンテンテン MMde-N6nD)
2023/01/16(月) 08:14:19.28ID:X/jbWDD/M >>141
記憶が確かなら、c++の関数スコープのstatic変数は呼び出し時に初期化されることが保証されているので、初期化順を細かく決める必要がある場合は関数のstatic変数を使う。
記憶が確かなら、c++の関数スコープのstatic変数は呼び出し時に初期化されることが保証されているので、初期化順を細かく決める必要がある場合は関数のstatic変数を使う。
144デフォルトの名無しさん (ワッチョイ 6a28-TTdX)
2023/01/16(月) 23:24:41.20ID:J3mmTfbR0145デフォルトの名無しさん (ワッチョイ 6a28-TTdX)
2023/01/16(月) 23:26:34.64ID:J3mmTfbR0 訂正orz
×: (初期化済フラグがfalseならnewに進む、というのをアトミックにやる
○: (初期化済フラグがfalseならtrueにする、というのをアトミックにやって、false→trueに変化したときだけnewする
×: (初期化済フラグがfalseならnewに進む、というのをアトミックにやる
○: (初期化済フラグがfalseならtrueにする、というのをアトミックにやって、false→trueに変化したときだけnewする
146デフォルトの名無しさん (ワッチョイ 6a28-TTdX)
2023/01/16(月) 23:33:23.86ID:J3mmTfbR0 とオモタがよく考えたら初期化済フラグがfalseならtrueに変化してからポインタpにnewされるまでの間に
別のスレッドが割り込んできてpを使おうとしたら破綻するからpを獲得できるまでスピンロック的に回ることが必要やったorz
ワイの答えはこれや……!
別のスレッドが割り込んできてpを使おうとしたら破綻するからpを獲得できるまでスピンロック的に回ることが必要やったorz
ワイの答えはこれや……!
147デフォルトの名無しさん (ワッチョイ caad-f6s+)
2023/01/18(水) 09:55:18.36ID:1kekdbbc0 今さらだけどさ、以下Perlソースコードみたいに初期化以外の場所で複数の変数代入を一行で記述できたら楽だよね。
($a, $b) = (1, 2);
($a, $b) = (1, 2);
148デフォルトの名無しさん (ワッチョイ 299c-N6nD)
2023/01/18(水) 10:18:29.33ID:kAps0iiP0 >>144
c++11からブロックスコープを持つstatic変数初期化はスレッドセーフだから、手動でやる必要ないんじゃない?
c++11からブロックスコープを持つstatic変数初期化はスレッドセーフだから、手動でやる必要ないんじゃない?
149デフォルトの名無しさん (ブーイモ MMb9-VlC0)
2023/01/18(水) 12:33:33.72ID:953Yg8XVM >>147
それ楽なん?
それ楽なん?
150デフォルトの名無しさん (テテンテンテン MMde-N6nD)
2023/01/18(水) 12:45:50.93ID:f+Qa9vK4M パターンマッチングとか単一化が欲しいという話じゃないの?
151デフォルトの名無しさん (ブーイモ MM2e-CztN)
2023/01/18(水) 12:49:04.55ID:aansOABgM 複数のことやってんだから複数行で書け
それかそんなにまとまり強いならラップしろ
それかそんなにまとまり強いならラップしろ
152デフォルトの名無しさん (ブーイモ MMb9-VlC0)
2023/01/18(水) 12:57:11.05ID:953Yg8XVM 俺もPerl使ってた頃に初期化で書いたことはあるけど、正直初期化以外での使い道ない気がする
rustのパターマッチは欲しい気がする
rustのパターマッチは欲しい気がする
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 🏡
- 今季最強寒気襲来!!!!
- 【高市早苗】習近平激怒か [115996789]
- 橋下徹「口だけ番長の日本が中国に喧嘩負け。なんとカッコ悪い日本か!」高市にバチーン!✴ [153490809]
- 今猛烈に食べたいもの挙げてけwwwwwwww
