C++相談室 part138

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd9f-fGne)
垢版 |
2018/08/05(日) 18:02:36.57ID:DigzqJtZd
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137
http://mevius.5ch.net/test/read.cgi/tech/1531558382/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2019/10/16(水) 15:16:04.47ID:+uYMSgx+0
俺は4つのxxx_castそのものに異議はないな
唯一、reinterpret_castであるべき内容の一部がstatic_castになっているのが不満といえば不満だが
2019/10/16(水) 16:56:41.62ID:Q+aPt1Pma
>>736
木構造の根っこを上に書くのは、C++の継承関係に限らずコンピュータ関連で広く一般的に使われている概念だと思うよ
2019/10/16(水) 17:01:10.48ID:+uYMSgx+0
ディレクトリの表示だってルートが左上だね
2019/10/16(水) 17:11:39.49ID:heYsODm90
木構造の図解なんて大抵ルートは上だと思うが…
組織図も同じ、生物の分類も上か左が大分類
ソフトウェアのモデル図なんかは下にベースを置いて上部が乗っかってるというイメージを出すけど木構造なもんではない
2019/10/16(水) 17:13:45.15ID:heYsODm90
生物の分類は下をルートとするものも多かったわ
すまんこ
2019/10/16(水) 17:23:31.27ID:lHTnSzst0
基本クラス = base class
base = 基本、基礎。

図示するとき、木構造は根っ子を上に書くことが多いが、その一方で、
「基礎」は下に書くことが多い。base とは「基地」という意味もあるが、
基地は下にあるイメージ。
2019/10/16(水) 23:41:03.01ID:8RD4dwtp0
>>732
なるほどお前がパヨクなのは分かった。
それはお前が事象を捉えられない馬鹿であることをお前自身が証明している。
本当にその年齢なら完全に老害だぞ。

フォークは資本主義のいわゆる「競争原理」であって、
逆に共産主義は一切のフォークを認めない。
共産主義は「独裁」であり、これは資本主義においてはプロパガンダ的に「悪」とされており、
これがお前みたいなパヨクな馬鹿が「共産主義者」とレッテルを貼りたがる理由だが、
これ自体もお前が馬鹿である証拠でもある。

実際は、「独裁」自体はさほど悪いものではない。
「独裁」であればこそ決済は早く、資源を集中投入することも可能だ。
実際、いわゆる開発独裁で失敗した国なんてない。
問題は、その独裁者が役割を終えた後も私腹を肥やし続け、また、虐殺を行うことであって。
(これをしなかった指導者は歴史的に見てもカストロしか居ない。この意味では彼は偉大だ)

開発独裁のように、国中にインフラが足りず、教育水準も低く、
やるべき事が山積している状況であれば、独裁の方が機能する。
とにかくやることが重要であって、何を先にやったところで大差ないからだ。
何を先にやるべきか、なんて議論は時間の無駄でしかない。

ところが、独裁は結局の所、「一人の天才指導者が多数の愚者を導く」モデルだから、
独裁者が天才として振る舞えなくなると失速してしまう。
共産主義が滅んだのはこれだ。
社会が成熟してくると、次に何をすべきかを指導者が正しく指し示すことは難しいからだ。
2019/10/16(水) 23:41:49.41ID:8RD4dwtp0
資本主義ってのは逆で、結果で正しかったかどうかを判定するシステムだ。
くどいようだが言い直すと、共産主義は、指導者が正しいと認めた物をやらせるシステムであり、
資本主義は、民衆がそれぞれ勝手にやり、結果的に生き残った物を正しいと認めるシステムだ。
根本的に逆なんだよ。
だから資本主義はスピードが遅く、回りくどいが、最終的に勝つシステムだ。
そして共産主義は序盤の立ち上がりは早いが、最終的には負けるシステムだ。
これは歴史上もそうだ。
5ヵ年計画も最初の2周(10年)まではアメリカを上回っていたが、
その後ソ連は失速して滅んで現在に至る。

これらから、現代社会は、いいとこ取りのハイブリッドシステムになっている。
つまり、最上位レベルでのフォークを認めた上で、小単位では独裁を認める、というものだ。
例えば会社、オーナー会社なら完全に独裁も出来るし、
株式会社なら集団指導体制だが末端社員が方向性に関与出来ない意味では共産主義でしかない。
ただ、これらが方向性を間違ったとき、倒産するなり、首をすげ替えられる点が違う。
それはその上位でのフォーク、つまり、会社の倒産が可能性としてあるからだ。

この「倒産の可能性」というのが極めて重要で、これが歯止めになっている。
だからまあ、完全に脱線するが、
例えば神奈川県町田市が、今回の給水妨害騒動を聞いて、
「オラ、東京都の方がいいべ」とか思って東京都に編入される事を望み、それが成立するようだと、
結果的に神奈川県の自治体がどんどん減っていって神奈川県が倒産するようになる。
これがあり得る状況だと、今回のようなイジメな顛末は起きなくなる。
同様に、N国がNHKに倒産/解散のプレッシャーを与えているのも正しい。それだけで全然違うから。
2019/10/16(水) 23:42:21.95ID:8RD4dwtp0
とまあ、現代社会は、
大局的なところでフォークを認めることにより方向性を見失うことを無くし、
局所的なところで独裁を認めることにより加速させる、というハイブリッドシステムになっている。
今のところはおそらくこれが一番いい成長モデルだ。
だから程度の差はあれ資本主義は全部これを採用している。

GitHubは「俺の独裁に文句があればフォークしろ」で、まんまハイブリッドシステムだ。
だから流行るし、成長する。
同様に、匿名掲示板にもフォークのシステムを導入するのは自然な成り行きでしかない。
そしてそれは最終的には勝つシステムだから、緩やかに浸透していくと見ている。

で、何で俺がこんな事を垂れ流しているかというと、
・なるほど、と思った奴は参加しろ
・そもそも誰か丸パクして今すぐ始めてくれ
だからだ。実は既に複数箇所に打診済みだが断られている。
一般に掲示板運営者というのは神として振る舞いたいらしく、自分が倒される可能性を許容出来ないらしい。
仕方ないから俺がやるか、としてちまちま実装を書きためつつ現在に至る。
アイデアは丸パクしてくれて構わんから、我こそは、と思う人はやってくれていい。

そして以上のように、俺の頭の中ではスターリンもカストロもGitHubも経済も5chも神奈川県も接続されている。
俺自身はこれを「知識のネットワーク化」と呼んでいるが、
俺の中でこれが始まったのは高校2年くらいで、それ以前はひたすら個々の事象を暗記してた。
そしておそらく、「ゆとり」世代に知識の積み上げについてのリスペクトが全くないのは、
彼等が「知識はネットワーク化するもの」ということを知らないからだと思う。
30%も削減されれば知識量自体は中二同等レベルでしかなく、それではネットワーク化しない。
漢字を読めない外国人が漢字の便利さを知らないのと同様、彼等は知識の有用さを知らない。
(漢字は教育コストが高すぎる面もあるが、それはさておき)
まあとにかく、だから肉体的にはさておき、知能的に「ゆとり」かどうかはまあわかる、というわけ。
2019/10/16(水) 23:43:04.12ID:8RD4dwtp0
ついでに別の例を挙げると、>>635は微妙なところだろう。
こいつは荒らしではないが、馬鹿すぎて、現時点では役に立つ書き込みは出来ない。
よって、BANしたところで失うものはない、とも言えるが、あまりに厳しいと書き込みを躊躇する奴が出てくる。
とはいえ、躊躇する連中なんてそのレベルであって、
こんな奴要らん、と最初から思える連中は問題ないし、むしろ、BANしないことに幻滅する。
だから取り扱いが難しい。

これに対して、俺の判断が正しい、だから俺の言うことを聞け、というのが共産主義の独裁だ。
この意味では、現在の5chはJIMだかひろゆきだかFOXだか、そこら辺が指導者の共産主義でしかない。
逆に、話し合って決めよう、というのが民主主義だが、
実際この手のセンシティブなことに関しては民主主義は全く機能せず、
悪事を「差別ダー」と言い逃れするパヨクと韓国人にやられっぱなしなのは今のリアルの通り。
パヨクなんてそろそろ「俺達が東大に入れないのは差別だ」とか言い出しそうな勢いだろ。
アメリカもポリコレが酷すぎて何だかなあだし、
10年ほど前にはアファーマティブアクション導入の是非について大騒ぎして結局止めたはずだが、
最近確認したら普通に導入されてて驚いた。
2019/10/16(水) 23:43:49.26ID:8RD4dwtp0
まあちょっと脱線したが、こういうのを止めて、フォークを導入する。
具体的には、誰をBANするかどうかは各moderatorが自由に出来るようにして、
どのmoderatorの基準が一番妥当かを競わせる。
そして勝ち残った(結果的に一番繁盛した)moderatorの基準が適正だったことになる、というわけだ。
よってシステムとしては、(今のところ考えているのは)
・5ch+板所有+フォーク
・reddit+匿名+フォーク
・8ch+フォーク
・qiita+共有+匿名+フォーク
みたいなものになる。なるほど面白そうだと思う奴は参加しろ。いやパクって今すぐ始めろ。
長期的に見てこいつはコミュニティにとって害か、口に苦いだけの良薬か、を適正に判断出来る奴がいれば、
確実に5chより良いコミュニティが形成されていくはずだ。
ただしこれは非常に難しい。だから出来る奴にやらせる為にフォークを導入する。
そして純粋に「良いコミュニティを形成する為の番人」としての腕前を結果で競おう、というわけだ。
そしてこれを経験した人は、コミュニティに対して有害な発言/人間に対する目が磨かれ、
結果的にリアルも変わってくる事を期待している。

今はゴミ投稿しかしてない ワッチョイ ffab みたいな奴が普通に会話に加われてしまう、これが間違いだ。
そういう投稿をしてきたのなら、それ相応の報いを受けるべきだ。
今のネットにはこれが足りない。
勿論、これまで罵詈雑言、埋め立て、スレ乱立、嘘、流言、とにかくやりたい放題だった連中は大反対で、
当然のように彼等は邪魔をしてくる。
が、それも含めてフォークで決着だ。
「ゆとり」「韓国人」「パヨク」を迷惑だと思っている奴らが多ければ、フォークは成立する。
なるほど、と思う奴は参加しろ。気に入らなければ勿論無視でいい。
2019/10/16(水) 23:44:56.26ID:8RD4dwtp0
>>733
なるほどだからお前みたいな「記憶型」の馬鹿には居心地がよく、
そして「思考型」の連中を除外する為にも無駄に技巧に凝るわけだ。
まあお前らとしては正当防衛なんだろう。

俺は「記憶型」はプログラマを辞めた方が幸せになれるからそうしろ、としか思わないが。
どうせ「思考型」のさとりに易々と追い抜かれて馬鹿にされる未来しかないと思うし。

一応言っておくと、C++は「設計」を記述しようとしていて、
castを4つに分けたのは「設計上は別物」だからだ。
お前は一生懸命パターン化して暗記しているのだろうが、
あれはちゃんと「設計」していれば、どれにするか迷うことはない。
その他の物も、一応分離する理由はあるんだよ。
お前にとっては暗記する物が増えて嬉しいのだろうけど、そういう目的ではない。

そしてCは記憶する量がほぼミニマムだから、
「記憶型」の馬鹿には何をすればいいのか分からないから嫌うんだな。
なるほどLinusの言う、
「Cにこだわっているのは、実のところ馬鹿C++er避けだ」というのも当たっている。

OSSの場合は更新出来なければ自動的に死ぬ運命だし、
過度に技巧的で意味不明なら書き直されるかフォークして丸ごと捨てられる。
これによって歯止めがかかっているわけだが、
どうせ書き捨てのお前らの糞コードはデタラメし放題、というわけだ。

既に言ったが、初心者向けのアドバイスとしては、
・まともなサンプルコードから出発しろ
だな。例えば730内のような、大勢の目に付く所とか、
MSDNみたいに記述者の最低限の技量が保証されているところとか。
これらの場合、最低限のコード品質は満たしている。
(というよりOSSと同様、あまりに酷いと書き直されるからだが)
そうすれば、mutexをstaticに取るみたいな意味不明なことは起きないだろうよ。
2019/10/16(水) 23:50:09.12ID:55h9Cwoqd
ここはC++スレッドなのでC++のことに関心がない人は基本的に発言禁止。
談話をしたいやつはチャットルームへ行けよお。
2019/10/16(水) 23:58:03.36ID:8RD4dwtp0
>>749
荒らし含めて、C++に関心無い奴はいないと思うが。
俺に対する文句なら、以下に行けとしか。

C++相談室 part145
https://mevius.5ch.net/test/read.cgi/tech/1568362404/


というか韓国人>>733、ちゃんと誘導貼れよ。
お前が望んだことだろ。
結局お前ら韓国人はそうやって文句しか言わず何もしないから駄目なんだよ。

そして蟻、お前に発言権があるとでも思っているのか?
スレについて云々言うなら、少なくとも直近(1-3ヶ月以内程度)に何らかの有効発言があるべきだろ。
お前は半年前のようだが。
2019/10/17(木) 00:29:05.86ID:382C52EB0
>>748
俺がC++の進化を奇妙に思うのは、castやconstexprとわざわざ分けてまで開発者の意図を正しく伝わるようにしている一方で、それとは正反対のautoだラムダだと抽象化を促すように進んでいる事だ

まぁ俺はもうここには来ないことにする
俺自身韓国は好きでも嫌いでもないが、お前のような差別発言する人間は、先入観で突っ走って技術を正しく見る知能は持ち合わせてなさそうなんでね
2019/10/17(木) 00:31:13.44ID:TUd5Vf/k0
そりゃ細かく指定したい場面と、したくない場面を両立させようとしたらそうなる
2019/10/17(木) 01:18:43.90ID:FdPUQDEua
ライブラリを作成する人は細かく指定したいし実際に使う側はそんなこと気にしたくないし...
2019/10/17(木) 01:24:17.39ID:MOSmSBIo0
>>751
>>752の言うとおりだと分からないのはお前が馬鹿だからだ。
なお、autoとかラムダは抽象化ではないが。

> まぁ俺はもうここには来ないことにする
最初からそうしろよドアホ。
俺はお前みたいに嘘つきで迷惑行為を行ったのにも関わらず「差別ダー」で逃げる奴にいい加減キレてるんだよ。
これは他のリアルでもそうで、だからトランプでありbrexitなんだよ。
お前らの存在がコミュニティにとって有益か害かはフォークで決着させるべきだ。
分かりやすいと思うがな。

俺はこのスレに居り、本スレには行かない。(これはもうずっと守ってる)
お前はもうこのスレには来ず、本スレに居る。(お前が守ってくれればだが。所詮韓国人、嘘ばかりだからなー)
これでどっちがよりましになるか、勝負だ、ということ。正しい競争だろ。


>>737
お前もみみっちくここにへばりついてないで、751を見習って潔く宣戦布告したらどうだ?
パヨクはそういうところがみっともないから若者にも支持されないんだよ。
2019/10/17(木) 03:10:51.54ID:VAROoPoe0
>>750
このスレが終わったらどうするの?
禁を解かれてまたいろんなスレに躍り出るの?
2019/10/17(木) 06:42:31.23ID:HSgL4rLQ0
馬鹿が長文書いてる時間、他のマトモなやつはコード書いてんだよ

> どうせ「思考型」のさとりに易々と追い抜かれて馬鹿にされる未来しかないと思うし。

この戯れ言をそっくりそのまま返すぜ
2019/10/17(木) 07:06:41.91ID:HSgL4rLQ0
パヨク、韓国という口癖から察しがつくのは
煽動に乗りやすい浅はかさだな
聞きかじったことの受け売りは雄弁に語るが
てめー自身の経験で得た知見はないに等しく
妄想とマニュアルトークしか芸がない

> 先入観で突っ走って技術を正しく見る知能は持ち合わせてなさそうなんでね

自己紹介乙
2019/10/17(木) 07:09:01.70ID:HSgL4rLQ0
共産主義者は2種類いる
悪の天才と騙されるアホだ
どう見ても後者なやつ
2019/10/17(木) 09:41:53.42ID:/GCBg1U50
しかし、OSSにすること自体が競争原理には相容れないと思うんだが。
2019/10/17(木) 09:48:34.80ID:PVi4YySF0
おっさんになると他人の関心お構いなしでく自分の言いたいこと言い散らかすよな
ボケ始めてるんだと思うわ
2019/10/17(木) 09:49:36.07ID:/GCBg1U50
優秀な一目線で見れば、分かり易くて修正し易いコードが、レベルの低い人に
一方的に修正されてフォークされているように見える。
分かり易ければ分かり易いほど修正や機能アップがし易いのでフォークされるだろう。
そして、コードが汚くなった時点で誰も修正が困難になってフォークは終わる。
つまり、良いコードはフォークされまくって、最後に残るのは悪いコード。
名前が売れるのは最後に修正した人。最初に良いコードを書いた人は過去の人となり
埋没していくだろう。
2019/10/17(木) 11:05:09.37ID:xYoVn6dx0
全部読んでないが、シングルトンパターンについて意義があるなら原典引いてここにこう書いてあるがそれはどのように間違ってると書いた方が生産的だろう
使用例やstaticじゃダメな理由も書いてあるからそれに対して反論すればいい
Javaでグローバル使う為にとか書いてあるから読んでないんだろうけど
って書くとデザインパターンを盲信している信者扱いされるんだろうなw
いや、韓国人か?w
2019/10/17(木) 11:41:13.29ID:/GCBg1U50
>>761
ただし、一番最初に書いた人は、名前が残っていく傾向がある。
いずれにせよ、1つ言えることは、最も貢献した人が有名になるわけでは
ないだろうということ。もっと根本的な事を言えば、有名になってどうするの、
という点。プログラムなんかで別に有名になりたくない。
2019/10/17(木) 20:02:15.87ID:LNHzPSkK0
>>743
>実際は、「独裁」自体はさほど悪いものではない。
>「独裁」であればこそ決済は早く、資源を集中投入することも可能だ。

たしかに
今の中共をみていると、成長分野になりふりかまわず資本投下できる独裁国は強い、と思います
中国には「人権」などという「きれいごと」は存在しないので、顔認証をもとにした「社会的従順度スコア」を導入するのにハードルがない
ひたすら統治コストを下げることができる中共中国は、当面伸びていく一方だと思います
2019/10/17(木) 20:10:15.97ID:HSgL4rLQ0
こんな連中を僅かでも擁護する人間のクズは人類60億共通の敵だ
https://ameblo.jp/tachiagare-nihonjin/entry-10651665016.html?fbclid=IwAR34neJsrbH-oEqXKGFltM-tL874Ye59jgyKmJl--qleKxuCzCL87NCw7kE
2019/10/17(木) 20:11:07.51ID:LNHzPSkK0
>>744
>そして共産主義は序盤の立ち上がりは早いが、最終的には負けるシステムだ。

なぜ最終的に負けるシステムなのか、という点に興味があります
「言葉の自動機械」「法の奴隷」をキーワードとして、つまり、真心で動いていた層が死に絶えた次世代には損得勘定に長けた打算的な層ばかりが跋扈してしまうところに社会全体が衰退する原因をみます
当初素朴な自然信仰であったユダヤ教が、心を忘れ言葉の自動機械化が進み何事も言葉で定義されずにはいられない無駄な戒律ばかり増強した点を、後にイエスキリストは痛烈に批判していましたね
2019/10/17(木) 20:14:44.10ID:LNHzPSkK0
>>745
>漢字は教育コストが高すぎる面もあるが、それはさておき

いや、これはとても興味深いですよ
漢字は最初はコストが高いのかもしれませんが、高度化あるいは抽象化した概念を量産するのには向いているのではないでしょうか?
2019/10/17(木) 20:19:42.05ID:LNHzPSkK0
>>746
>10年ほど前にはアファーマティブアクション導入について大騒ぎして結局止めた
いいえ、止めてません、1960年代の公民権闘争の結果、その時期からアファーマティブアクションは着々と導入されてきての今があります
たぶん、ここ10年の間に白人比率が低下した結果、アファーマティブアクションは廃止されるのだろうと考えています、そこで米社会は一騒動するのだろうとも
https://www.youtube.com/watch?v=Y_oD0ZWfWz4
https://www.youtube.com/watch?v=eu6nk0s4ltM
2019/10/17(木) 20:32:03.97ID:LNHzPSkK0
>>746
>実際この手のセンシティブなことに関しては民主主義は全く機能せず、
>悪事を「差別ダー」と言い逃れするパヨクと韓国人にやられっぱなしなのは今のリアルの通り。

たしかに、いまどきのリベラルは退潮しつつありますね
「仲間で平等に分配する」というシステムを仮に立ち上げたとしても、「誰を仲間だとするのか?」「こんな奴は仲間ではない」という議論が沸騰しているのが今の世というところでしょうか
2019/10/18(金) 00:07:07.25ID:K5BFqmt30
しかし、C++関連の質問や話をするスレがなくなっちゃうのも困りもんだな。
2019/10/18(金) 06:43:43.55ID:L2N4rS5+M
NGしとけばいいだけ
2019/10/18(金) 21:29:56.86ID:QN1B+oqx0
> そして共産主義は序盤の立ち上がりは早いが、最終的には負けるシステムだ。

暴力はその場しのぎで、後で回ってくるツケが法外ということだ
BANだBANだとラリっている低脳がBANという暴力=麻薬に依存しきった思考回路であることを
共産主義者だと指摘したら図星で自白までしやがった
2019/10/21(月) 17:50:29.73ID:TG36gwfw0
共産主義、資本主義という分類ではなく、競争が起きるかどうかが重要。
独占状態だと競争が起きないので文明や科学の発展にはマイナスとなる。
資本主義でも、もともとが競争の結果でそうなったとしても、後々
結果的に他社や他者の参入が出来なくなってしまえば、競争が生じ
ず、文明の発展の速度は鈍化するだろう。独占禁止法の
「競争回復措置」という言葉が分かり易い。
2019/10/21(月) 17:52:59.83ID:TG36gwfw0
>>773
貧富の差も同様。もともと金持ちや首都圏に生まれた人が圧倒的有利に
なってしまうようでは、偶然に生まれてくる他県の優れた才能が生かせず、
国にとってはマイナスとなろう。
2019/10/21(月) 18:20:48.25ID:iwcvXj420
>773
共産党が与党の国は一党独裁だ
これがどういう意味か説明する必要はあるまい
2019/10/21(月) 18:43:09.75ID:yunJBz4i0
共産主義 ---> 競争をなくした方が幸せになり、過当競争による無駄も無くなる
       と考えた思想。結局失敗。

資本主義の独占状態 ---> その企業がそこまでになったのは競争の結果であった
            としても、結果的に競争が生じない状態になりがち。
            将来もっと良い製品を作るかも知れない他の幼い芽さえも
            積んでしまうので、別の可能性の出現は全く起きなくなる。
2019/10/21(月) 20:38:05.87ID:iwcvXj420
GAFAが有史以前から存在していたと思っているガキかw
2019/10/21(月) 21:54:48.41ID:lW7UmcA60
>>773
>競争が起きるかどうかが重要。
intel と AMD の舐めプレイ競争を見ても、つくづくそう思いますね…もうすぐ32コア?64コア?
2019/10/23(水) 08:52:52.51ID:s4ZmhUIr0
それぞれapiとして用意している二つの関数があって、そこで値を共有したい
apiの使い方はa関数をよんでbのために値を設定して、その後にb関数を呼ぶみたいな感じ

引数として渡すとインターフェースを変えることになるからできない
二つの関数は同じファイルに記述しているからグローバル変数で値を渡そうとしているのだけど、
それ以外に方法ある??


namespace test

static int test


void a()
{}

void b()
{}

一応、staticで有効範囲をこのファイルに限定して、名前空間で使われ方を限定はしようとしてるんだけど...
2019/10/23(水) 09:43:48.31ID:BSAyiZrNM
スレッドローカルって手はある
この場合に適するかどうかはさておき
2019/10/23(水) 10:10:24.12ID:65oBAktIa
よく読んでないけど無名名前空間はどう?
2019/10/23(水) 15:15:00.59ID:2CDh/I9t0
>>779
いくつか方法があるが、そのような目的では通常、namespace は使ってはいけない。

方法1:それらの関数を、あるクラスのメンバ関数にする。受け渡しのデータの型は、
    関数宣言などの「インターフェース」には影響しなくできる。

方法2: struct TInfo {・・・}; というような構造体を宣言し、その中に、見せたくないデータを入れておき、
    void a( TInfo *pInfo ); void b( TInfo *pInfo ); とする。TInfo は、

struct TInfo {
 DWORD m_type; // 種類を区別する何らかの数値。
 union {
  TYPE1 m_dat1;
  TYPE2 m_dat2;
  TYPE3 m_dat3;
 }
};
のようにして、m_type の値に応じて、union 型のどのデータを使うかを場合分けする。
TYPE1, ・・・, TYPE3 は、通常、何らかの struct 型にし、好きなデータをそこに入れる。
2019/10/23(水) 15:21:42.82ID:2CDh/I9t0
>>782
方法3: TInfo を直接使わずに、struct TBase {・・・} としておき、
void a( TBase *pInfo ); void b( TBase *pInfo ); とし、
struct TInfo1 : public TBase {・・・};
struct TInfo2 : public TBase {・・・};
struct TInfo3 : public TBase {・・・};
とする。やりたいことに応じて、TInfo1〜TInfo3の好きなものを使う。
なお、方法1は、説明不足だったが、こうする:
class CBase {
public :
 void a();
 void b();
};
class CDerive1 : public CBase {
protected :
 TYPE1 m_type1;  // 好きなだけの個数のメンバを書いても良い。
public :
 void a();
 void b();
};
class CDerive2 : public CBase {
protected :
 TYPE2 m_type2;  // 好きなだけの個数のメンバを書いても良い。
public :
 void a();
 void b();
};
2019/10/23(水) 15:25:02.62ID:H9cLmi0l0
>>782
インターフェースを変えられない(=呼び出し側を変更できない)んだから両方駄目だろ
2019/10/23(水) 15:29:33.08ID:2CDh/I9t0
>>784
関数、a, b のインターフェースは変わってない。
2019/10/23(水) 15:33:22.30ID:H9cLmi0l0
>>785
a, bをクラスに入れたら呼び出し方法が変わる
インターフェースを変えてはいけないのに呼び出し方法を変えても構わないというのはおかしい
2019/10/23(水) 15:41:37.49ID:H9cLmi0l0
質問者がa(), b()以外から変数testが書き換えられる可能性を危惧しているのなら、
privateにコンストラクタとtestを持ち、a()とb()をfriend関数として持つクラスを作ればいい

class testClass

testClass();
static inline int test = 0;
friend void a();
friend void b();
2019/10/23(水) 15:42:25.23ID:2CDh/I9t0
そういう話であれば、そもそも最初の質問の意味が分からない。
何がしたいのかが。
2019/10/23(水) 16:23:48.30ID:SjYY42eHa
32bitでコンパイルされたdllを64bitのプログラムから使用する方法ありますか?
2019/10/23(水) 16:32:16.25ID:DFr4VJRtd
>>789
それらのDLLを読み込む32-bitのexeをShellExecuteで呼び出す。
791デフォルトの名無しさん (エムゾネ FF32-uHRg)
垢版 |
2019/10/23(水) 16:59:49.87ID:JzA6/vMpF
実はレジストリも違う場所に描き込まれるよね
2019/10/23(水) 21:06:09.31ID:BSAyiZrNM
>>788
何をしたいのかは明らかだろ
メンバ関数にしてインタフェース変わってないとかお前の方が意味不明な
2019/10/25(金) 00:11:30.11ID:GVbKjdOl0
>>755
追加の宣言を促す気なら、お前がまず何か宣言するべきだ。
これは俺に文句を言っているその他全員もだ。
俺はもう既に宣言済みで、それをこれまで守っているのだから。

単なる質問なら、それはそういう言葉で行うべきではない。
おまえら「ゆとり」はクズだからネット上ではいくらでも挑発していいと思っているようだが、それも間違いだ。
俺は勝手に宣言して勝手に守っているだけであって、お前らクズ「ゆとり」に禁をかけられているわけではない。
また、今尋ねることも適切ではない。
このスレを使い切るのに後何年かかるか分からないのだから。
(本来はあと2年ほどかかる予定だったし、今お前らが黙れば後1年は持つと思うぜ。実際俺が放置したら停止したろ)

そもそもお前がそれを心配するのなら、お前が今為すべき事はここに何も書き込まないことだ。
それは>>725もそうだが、どうにもお前ら「ゆとり」はクズ過ぎて駄目だ。
>>733,751とこの馬鹿自身が書き込むことによって、725を自ら無効化してしまっている。
結果、一番無駄なレスは725だ。
725は結局、自分に都合の悪いレスを止めて欲しいだけで、自分は文句を言いたい放題という、
いつも通りのパヨク的ダブスタに過ぎない。
他人に口をつぐむように指図するなら、その本人は最低限それを守るべきだ。
韓国人はこの辺の筋が通じないから駄目であり、結果、韓国人が居るだけで荒れる。
だから韓国人の存在自体がコミュニティにとって害だ、ということになる。
これが妥当か勘違いかを、フォークで決着付けてやる、ということだ。

いい加減、お前らがおもしろがっていたこと(>>705)を大迷惑だと思っていた連中も多いと気づけ。
だから「ゆとり」は殺さないといけない。
とは言っても物理的に殺すわけにも行かないので、ネット上でフォークして勝負だ。
2019/10/25(金) 00:12:13.53ID:GVbKjdOl0
ちなみにお前ら、「殺人」が何故いけないのか考えたことがあるか?
俺はそれは「取り返しがつかないから」だと考えている。
逆に言えば、ネット上の殺人(=BAN)は取り返しが付くのだから全く躊躇する必要がないとも考えている。
そして俺が「韓国人だから」という理由でBANを発行したとして、それに抗議するのは、
パヨクのように「人権ガー」「差別ガー」ではなく、
「韓国人が居ることによってより上手く回る」掲示板を運営し、そこを繁盛させることにより、
「韓国人だから」みたいな『ふざけた』理由でBANを発行する掲示板を過疎らせて殺すことによって行うべきだ。
実際、これは理論的には可能だ。多様性自体は上手く使えれば確かに善だ。
ただ、それには相応のコストが必要で、まずは最低限、悪事を「差別ダー」と言い逃れするクズ共をたたき出す必要がある。
そしてその先にも有形無形の様々なコストが必要で、今の日本のお花畑達はまるでこれが分かってない。
アメリカは確かに移民の恩恵を受けているが、それがタダだと思うのは完全に間違いだ。

ただ、本当にここら辺のことをふまえた上で実行され、それが機能するのなら、俺が運営する掲示板は滅ぼされることになる。
その時は、役割を終えた、ということでいい。
「韓国人」は死ね、というのが気に入らないのなら、やってみればいい。
俺が掲示板を用意するのにはあと数年かかる。
それ以前にお前らが機能させられれば、最初から俺の掲示板なんてゴミであり誰も見向きもしない。
お前らにこれが出来ればお前らの完全勝利だ。やってみろ。
2019/10/25(金) 00:12:43.85ID:GVbKjdOl0
ちなみにお前らがこういう考えに至らず、文句を言って相手を潰そうとするのは、お前ら自身が共産主義的だからだ。
資本主義的なら、相手を凌駕することにより相手を滅ぼすのが正しい戦い方だ。
「差別ダー」と政治的に喚き散らし、お取りつぶしを願うことではない。
結果、共産主義では「指導者が正しいと認めた物」しか出てこないから発展せず、
資本主義はどんどん「相手を凌駕した物」が出てきて社会もその恩恵を受けられるからじりじりと前進していく。
これが共産主義が滅んだ最大の理由だ。最初から最終的に勝てるフォーマットではなかったんだよ。

だから、俺の見解を「差別ダー」と思うのなら、
「差別のない掲示板」をお前自身が運営して「差別のある」掲示板を滅ぼすことだ。
ただ、俺はお花畑なお前らにはそれは出来ないと見ている。
誰であれ「荒らし」であればBANしていく、という方針がもっとも差別がないと俺は思うが、お前らはそうではないようだし。
2019/10/25(金) 00:13:44.69ID:GVbKjdOl0
ところで「向いている/向いていない」について良いスレを見つけた。
俺の文は読めないというのなら、以下でも読んでみてはどうか。
内容はまあまあだと思う。
(以下2つは同じ物)
http://boards.4channel.org/g/thread/73285994
https://archive.rebeccablacktech.com/g/thread/73285994/
2019/10/25(金) 07:31:59.25ID:1flCt2Jcd
> パヨクのように「人権ガー」「差別ガー」

ブサヨが難癖つけるときのボキャ貧ワードだろうが
てめえらがしたことを他人に擦り付けるいつものワンパターンまたやってやがる
マジ氏ねよ腐れアカ
798デフォルトの名無しさん (アウアウウー Sa27-nFuE)
垢版 |
2019/10/25(金) 12:40:25.22ID:f89Z34lqa
>>793-796
3行にまとめてくれたまえ。
2019/10/26(土) 01:08:41.16ID:JNlbd3QN0
>>511
>classのかわりにstructと書いたらむしろ1文字多いのだが
structのかわりにclassと書いたら1文字減るじゃん?
2019/10/26(土) 01:11:52.48ID:JNlbd3QN0
>>583
問題ある
シングルトンの中身がわかったらワカル
2019/10/26(土) 01:13:46.84ID:JNlbd3QN0
>>600
ジャヴァで動かないわけではない
安全にならないだけ
2019/10/26(土) 14:17:06.84ID:JNlbd3QN0
訂正
バカ正直にsynchronizedしたシングルトンはジャヴァでも安全に動く
安全にならないのはdouble-checked lockingした場合
2019/11/07(木) 17:16:16.48ID:lzcXDdMi0
現状のアーキテクチャはそもそものラムダ計算つまり再帰とはもっとも相性が悪い
スタックマシンや有限メモリでは関数型の再現は無理がある
そこをだましだまし使っているだけで、本当はとっても相性が悪い
2019/11/12(火) 21:57:17.55ID:kYwxel/p0
>>803
お前の頭はプログラミングとはもっとも相性が悪い
文系脳には無理がある
そこをだましだまし使っているだけで、本当はとっても相性が悪い


quoraにもあったわ(なお日本語版にはいいのがなかった)
https://www.quora.com/Is-it-true-that-programming-is-not-for-everyone
内容は>>796と同じだけど、つまりは同じ事を実感している人が多い事実は認識した方がいい
努力以前に適性の問題が大きい
プログラミングは無理してやるようなことではないし、今現在のC/C++はプロ以外が使う意味はない

新人みたいに絶対的に知識/修練時間が足りていないのならばさておき、
そうではなく、十分な練度のベテランのつもりで、
今現在のソフトウェア界隈の動きが全く理解不能なのであれば、
それはお前は全く向いてないことを意味する
多くの人がよってたかって改善しようとしている状況で、訳の分からない方向に行くことはほぼ無い
それはこれまでも、また、これからも、同じだ
2019/11/13(水) 23:02:32.05ID:2/js0Ksx0
適正が有る無しは何処の分野でも同じ
今はソフトウェアが多く求められているのに
それを充足できていない事が問題
それなのに適正がー
とか言ってては何の解決にもならない
ライト層からヘビー層まで色々必要なんだから
別に適正がなくても訓練が出来ていればその人たちにライト系を作ってもらえば良い
今はどうやってソフトウェアの生産を増やすか?
その為の基礎教育や教科手順何かが求められている
問題はそういう教科書的な物で良い物が無い事だ
上に有る様な質問が出ても照会する本もたいして無く
ただ色々やってみろ
みたいな話にしかならない
努力と根性みたいな話しか出てこない
下層が弱くて薄い
それを強化しないといけないという問題認識が無さ過ぎる
まぁc++はライト層とは別分野だと思うけど
何の対策も提案も無く排除ばかりしようとするのは社会的に問題有りだ
2019/11/13(水) 23:50:19.63ID:AdVXo6730
>>805
ならお前がまず解決策を出せよ
お前には出来ないと思うが

お前は英語も出来ないということは分かった
quoraのトップの意見に全くそれについて書いてあるだろうに
文系の馬鹿共にどれだけ高校物理を教えても時間の無駄にしかなってないのは今でも事実だろ
プログラミングはおそらくもっと酷いことになる
お前こそ精神論過ぎる
2019/11/13(水) 23:50:47.34ID:AdVXo6730
ただ、俺はお前の言う問題は認識してないがな
俺は「無能はプログラミングすべきではない」と考えているし、義務教育化にも反対だ
そして排除自体はこのスレおよび話し相手としてだ
つまり俺の前から消えろ、でしかない
当たり前だが俺はお前ら馬鹿がプログラミングするのを止めることは出来ない
ただ、アドバイスするなら、お前らにも適性がある分野があるはずだから、そこを目指せ、となる
文系なのにSEなんかにされているのなら、
お前も、また、お前みたいな馬鹿と一緒にやらされる周りも、被害者だよ

プログラミングについても、以下は当てはまると思うぜ
一撃必殺!急にマンガ家だの声優だの絵師だのになりたいと言い出した子どもや大人を止める、オススメの方法
https://togetter.com/li/1130025
家庭にPCが当たり前にあり、個人レベルでスマホを持っていて、高性能なIDEも無料で手に入り、
ググればいくらでもサンプルコードが出てくる今、
自分で開始/対処出来てない時点で適性がないんだよ
才能さえ有れば、努力さえすれば、と思っている馬鹿が多すぎる
それなりに才能有るやつが努力し続けることを強制される世界なのだから、
努力を続けられる「適性」が最も重要で、それがないと根本的に無理なんだよ

というわけで話は終わりでいいか?
お互いこれ以上得る物はないと思うし
反論なら、quoraや4chanの意見を確実に読んだと分かるように書いてくれ
俺はお前と話すのは無駄だと認識したから、お前の意見については無視したい
ただ、お前が4chanやquoraの『大勢の』意見について賛同する部分があるのなら、
それが分かるように明記してくれれば、必要有れば反論することにする
俺は既に言った通り、4chanやquoraの『大勢の』意見には賛同している
だからまあ、可能で有れば、俺に反論する必要もなく、
お前が勝手に4chanやquoraに行って叩かれてくれるのが一番助かるが
2019/12/14(土) 00:08:53.58ID:x6gTDhtk0
糞使えなかった do-while 文だが、最近使えそうなところに遭遇した。
が、結局スコープの問題で使えなかった。コード構成は以下と同じ。

do {
Type value(GetCurrentValue());
Process(value);
} while (condition(value));
// https://stackoverflow.com/questions/13297243/why-is-whiles-condition-outside-the-do-while-scope

ここで上記の筆者も言っているが、do-whileのスコープって使えないよな?(設計としてよくない)
そこで他言語でこのスコープが直っている物を知らないか?
最有力としてはC#だが、試したが駄目だった。
(スコープはCと同様、そしてdo-while自体がレア https://ufcpp.net/blog/2016/12/tipsdowhile/ )
Rustは do-while ループを廃止したらしい。Goはwhile文自体を廃止している。

言語設計としての一貫性は重要として、
for文がスコープを拡張しているのに、do-whileがスコープを拡張してないのは間違いのように思う。
というか、do-whileが使えないのってこのスコープ設計が間違っているからであり、
正しくスコープが拡張されていれば有効性はあったように思うが、どうか?
while (true) { if ... break;} より1行短く書けるメリットもあるが、
それ自体ではなくく、その形式のループを全部do-whileにすることにより可読性が上がる。
違う言い方をすれば、 while ループでの頻出形式を for に纏めたのと同じく、
必ず一度は実行し最後に break する形式の while ループを全て do-while にすることにより識別しやすくなる。

もっとも、JaveScriptに慣れた状況だと、最早ブロックスコープイラネとも思えてきたが。
ブロックスコープだとどうしてもこういう状況等で宣言型(変数の宣言と同時に常に初期値を代入し、必要なければ再代入をしない)で書けない。
関数スコープの問題は関数を小さくすることによりほぼ回避出来るので。
(JavaScriptは全ての関数がクロージャを持つので、C言語でのループは常に関数内関数としてそのまま切り出せる)
2019/12/14(土) 00:51:38.10ID:PwUHvw+y0
do-whileマクロで必須だろ
2019/12/14(土) 01:02:13.83ID:sa3jv1WG0
使えないなら使わなければいい
すべてを使う必要もなければ、すべての仕様が有用である必要もない
C++にはC言語への後方互換性のためだけに残しているものは多い
2019/12/14(土) 06:19:13.04ID:2PNj6NH40
ループの先頭から入って
ループの後ろで条件判断するコードが
動作的に一番無駄が少ない

だから do while が存在する

コンパイラの最適化も糞でCPUも遅くメモリも少ない時代に出来た言語

1回以上通る事がわかっているループは
do whilw の方が良い
コンパイラが1回以上通る事がわからないと
無駄なジャンプ命令が増えるので
2019/12/14(土) 06:22:59.24ID:2PNj6NH40
do (int i = 0){

} while (i < size);

こんな書き方が出来れば良かった
2019/12/14(土) 06:29:27.00ID:u9FlXKU00
読みやすいfor文がええわ。
2019/12/14(土) 06:35:32.14ID:2PNj6NH40
読みやすさよりも1バイトでも短く
1サイクルでも速く

な時代の話
2019/12/14(土) 06:46:30.22ID:2PNj6NH40
for (int i = 0 ; ; ){

if (i < size) continue;
break;
}

う〜ん...
2019/12/14(土) 08:14:01.65ID:x6gTDhtk0
>>821
見やすさなら従来通りの do-while がいい。問題はスコープなだけで。

do {
bool flag = ...
} while (flag);

頭でflagを確定させられる場合は、これはいわゆる従来記法

while ((line = sr->Readline())!=nullptr) {
...
}

とほぼ等価になる。が、(本来の)今風なのは上側の do-while だと思う。
なおfor文で do-while はGoがやっていて、

for (bool flag=true; flag; flag = update_flag()) {

}

の構成らしい。ただこれは見る限り駄目だろ。


ただし確かに実行コードとしては、頭の条件判定が抜けるだけでしかない。
以下を見れば一瞬で「絶対に一度は入る」とは分かるから、
コンパイラが最適化してくれるのなら、行数が1行増えること以外には問題はない。
が、俺はこの1行にもこだわりたいんだが。

while (1) {
...
if (condition) break;
}
2019/12/14(土) 08:16:23.01ID:tW2KoQAYa
while (1) が見やすいよ。
かっこよさはさておき。
2019/12/14(土) 08:46:39.98ID:x6gTDhtk0
>>817
現実的には俺もそうしている。

ただ、最近は、「こう書ければな」と考えながら書くのが重要なのだと思うようになった。
少なくとも、DI(Dependency Injection)とかの問題は自然と回避出来る。
そこでコードを見てて、ふと思ったわけだ。
この if 文、do-whileのスコープが正しければ削除出来るよなと。

ただ、他言語も特に対応していない状況であれば、今現在は
コンパイラに任せて、ユーザーはど定番の記述を書け、ということなのだろう。
2019/12/14(土) 09:28:57.52ID:2PNj6NH40
>>816
その、「スコープの問題」が大きいの
見やすさが大きく影響するので
2019/12/14(土) 09:33:02.46ID:2PNj6NH40
>>811と同じ理由で

while (1){
}
よりも

do {
} while (1);
のほうが良いバイナリになる事がある

糞コンパイラの場合
2019/12/14(土) 09:48:01.39ID:SZLGcxYz0
最近のコンパイラは最適化を指示するまでは
いらんことしなくなってきてるね
2019/12/14(土) 10:33:51.54ID:2PNj6NH40
ステップ実行出来ないと困るから
2019/12/14(土) 11:14:39.14ID:x6gTDhtk0
>>819
結局お前の意見は何なんだ?


俺の意見は、「do-whileはforと同様にスコープを{}の外まで拡張すべきだった」というものだ。
つまり、再記するが以下の書き方が出来るのが『正しい言語』と考える。

do {
bool flag = ...
} while (flag);

現行のC言語では、for文以外はスコープを {} 内に物理的に配置したものに限定しており、
for文だけ例外的に ()までスコープを拡張している。
C++17でif文とswitch文も拡張された。
https://cpprefjp.github.io/lang/cpp17/selection_statements_with_initializer.html
なら何故 do-while もそうしなかったのか?という話だ。
俺はC++23に期待するが。
2019/12/14(土) 11:16:05.17ID:TuPL6E6l0
do-while使ってる人が少ないからじゃね
2019/12/14(土) 11:20:25.69ID:k5kIl1RN0
>>823
期待するけど提案するつもりは無いのでしょう?
そんなことを思いつく人は一人ではないだろうけど実際に提案はされないから、そんなことは起こらないんだよ。
2019/12/14(土) 12:12:20.14ID:2PNj6NH40
提案は>>812に書いたけど
2019/12/14(土) 12:13:21.43ID:2PNj6NH40
それを今の文法で書くと
>>815になる
2019/12/14(土) 12:23:18.39ID:2PNj6NH40
別に頻繁に使うこともないんで
そう書きゃ良いだけなんだけど
2019/12/14(土) 12:29:39.35ID:z3Vs03gF0
そこでマクロ定義ですよ。
2019/12/14(土) 12:40:35.62ID:x6gTDhtk0
>>824,825
なるほど、提案しろと言うのはごもっともだ。
しかし俺は仕様を提案するほどには仕様に詳しくないからパスだな。
そして確かに同様の人が多いというのは認める。


>>829
それは俺も以前考えた。
Cのマクロはそこでしかパース出来ないので、前に出す事が出来ず、限界がある。
(例えばdo-whileブロック内のflag宣言をwhileよりも前に出すことができない)
そしてそれでも無理矢理やるならいっそのことPython等での自前パーサを先に通すほうがまし、という結論に達した。
そして一部それを既にやっている。
(俺は使ってないが)何だかんだでmakefileが融通が利くのはこういう点でもある。
そして自前パーサで全く別のように見える記述になってきたら、新言語の完成、というわけだ。
C++も同様だったと聞いているし。
831デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
垢版 |
2019/12/14(土) 14:15:29.43ID:TlZt0biiF
switch(hoge){
case HAGE: do{}while(0); break;
case FUGA: do{}while(0); break;
default: do{}while(0); break;
}
マクロにするとスコープ問題も解決するしbreak書き忘れも無くなる
832デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
垢版 |
2019/12/14(土) 14:16:22.48ID:TlZt0biiF
>>830
QTもその延長にある希ガス
2019/12/14(土) 14:25:44.80ID:bUVFbQd10
int a = 0;
do {
int a = 1;
} while (a);

このコードの挙動が変わってしまうから直せないと思う
2019/12/14(土) 14:30:23.06ID:z3Vs03gF0
>>830
マジレスされるとは思わなかったけど例えばこんなのとか。C FAQでヤメロと言われてるような。

#define SCOPED_DO(VARS) for(;;) { VARS;
#define SCOPED_WHILE(COND) if(COND) continue; break;}

SCOPED_DO(int i;)
:
SCOPED_WHILE(i<10);
2019/12/14(土) 14:34:41.93ID:JwYnIOEad
ああ、確かにやめた方が良い
2019/12/14(土) 16:21:38.04ID:x6gTDhtk0
>>831
すまんがそのコードの意味はよく分からない。


>>834
それはマクロにすることが目的で、見やすいコードを書こうとしていないので、
FAQでなくても止めろと言われて当然だ。
マクロも当然ながら見てすぐ分からないといけない。
この意味ではlinuxのコードが参考になるだろう。
小文字マクロが大量に使われていて、それでも何とかなってる。
逆に言えば、小文字マクロ=関数だと勘違いしても問題ない範囲で使え、ということだ。
どう変換されるかぱっと分からないマクロは逆に読みづらくなる。

ただまあ、ifとswitchの取り扱いからすると、
C: for文が例外で、他は{}がスコープ
C++: do-while文が例外で、スコープを開始出来るキーワード(for/switch/if)ではキーワード部分までスコープに含める
という状況なので、do-whileのスコープも拡張されるのは時間の問題だとも思うが。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況