C++相談室 part159

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2022/02/19(土) 11:56:42.14ID:kSnJ/KwP
前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/
757デフォルトの名無しさん
垢版 |
2022/03/27(日) 23:25:52.46ID:QKAmAp06
Microsoftは馬鹿かと思う。
勝手にBitlockerがかかって、「この箱には鍵がかかっています。その鍵をあける番号は
箱の中にあります。」の連続。
2022/03/27(日) 23:36:32.07ID:PoGWmBV8
そんなことみんな知ってて言ってるだろw 何を今更w
通常C/C++だと低レベルな処理はプラットフォームでAPI分けるから、Windowsでは仕方なく(可能な範囲で)ワイド文字を使用する仕様にしたりすることもある、というくらいw
でもターゲットがWindowsだけだと逆に癖で文字にtypedef切ったり_T使ったりする不思議w
2022/03/27(日) 23:49:21.31ID:nbMAc3Vl
Pythonの内部コードはUTF-16らしいよ
2022/03/28(月) 02:22:28.60ID:51Y1Thh9
それも違うw
https://peps.python.org/pep-0393/
2022/03/28(月) 08:08:46.35ID:DkKihmtS
ボクが考えるWindowsスレですか、ここは。
2022/03/28(月) 08:45:03.78ID:zvnGSWPp
どうでもいいけど、黒魔術とかコンセプト神とかなんとか大袈裟な言い回し、ブログとかでよく見るんだろうけど
あまり真似しない方がいい気はする
2022/03/28(月) 08:56:12.53ID:HSBaMW3J
やたら絵文字を使いまくる頭悪そうなメールとノリが似てるね
2022/03/28(月) 11:30:00.76ID:npKEPSZJ
>>759
Pythonじゃなくてジャバスクのstringの内部表現やろ
UTF16って意外と標準採用されてるからな
至極単純にUTF8と比べてCPUパフォーマンスは良いし
2022/03/28(月) 11:35:09.55ID:4U9zlcIi
鼻から悪魔とか自分を足を撃つとか
そういう言い回し好きなアマチュアが吸い寄せられるのがC++って感じする

もちろん、仕事で嫌々使わされてる連中は除く
2022/03/28(月) 11:37:17.98ID:npKEPSZJ
>>756
標準装備っていうかカーネルがUNICODE_STRINGっていう非null terminatedな明示長stringしか扱わないからな
つまりA版APIは変換コストがかかる
2022/03/28(月) 13:30:08.02ID:HSBaMW3J
fjによく出没していた河野ってやつが言ってた
「C++はちょっと気が狂ったようなところがある言語」
あんまりあいつに同調したくないがこれは言い得て妙だ

これは何から何までキチガイ仕様ばっかりという意味ではない
たまに首をかしげる変なところがあるってことだ
2022/03/28(月) 13:39:02.76ID:yqBWM3bb
難しいコード書けても設計出来ないとなんの意味もないしな
2022/03/28(月) 15:23:35.37ID:DkKihmtS
他人が読めないコード書いてマウンティングする文化があるからな。
2022/03/28(月) 16:26:35.03ID:R1D4p1O0
>>765
それはどちらもCだろ
C++の黒魔術とかの表現は気持ち悪いと思う
2022/03/28(月) 21:04:31.59ID:f80bfIyg
>>765
それは C だ…
2022/03/28(月) 21:31:46.30ID:Uu0YihOb
色々すっきりわかりやすくなってプログラミング効率の良いRustと比べればC/C++どちらも
2022/03/29(火) 08:04:21.14ID:mWQ/GdlN
>>772
学習曲線をなだらかにしてから言いな。とりあえずNGにしとくわ。
2022/03/29(火) 08:09:47.04ID:LEuYcsU9
> 学習曲線をなだらか
C++が言うな
775デフォルトの名無しさん
垢版 |
2022/03/29(火) 09:12:38.67ID:V3Kl11Pp
学習曲線をなだらかって何
2022/03/29(火) 09:40:35.27ID:FuLLa2J8
>>765
最近買ったRust本の帯に、もう二度と自分の足を撃ちたくないならって書いてあった。何なのこれ?
2022/03/29(火) 09:40:51.62ID:UOqSecAo
学習曲線なだらかだったらいつまでたっても習熟が進まないんだよなあ
2022/03/29(火) 10:05:42.16ID:WvuxHdPq
舌触りなめらか
2022/03/29(火) 10:21:02.72ID:HFhqj5qW
ちんちんシュッシュッシュッ!
2022/03/29(火) 10:46:35.81ID:MRVYy131
>>776
何なのってFPSゲームでしょ
2022/03/29(火) 11:27:10.53ID:l/5rTAs8
>>777
絶壁だったら学習できないよ。
第一、プログラミング言語を学習したいなんて奇人は少ないだろ。普通はプログラムを作りたいだけだし。

昔Accelerated C++みたいなC++を使うための入門書があったけど、ああいうのを整備する団体とか無いんかな。
2022/03/29(火) 13:24:22.14ID:oJxqSb9h
>>776
https://qiita.com/evid/items/adfa237f4dc6b73a2b5d#fnref5
要するに自分で自分を壊すような話
2022/03/29(火) 13:36:11.92ID:owrRZ3L6
設計ヘタクソなヤツは致命的、いや、池沼的なの居るからな
Rust養成ギブスで勉強してこいカスって感じ
2022/03/29(火) 15:03:31.53ID:ijYpt7F/
>>783
Rustやったところで、Pythonのインデントスタイルの勉強と一緒でRustスタイルのコーディングしかできなくなるだけだよ。
C++のプログラム技術向上のためにRustを勉強するとか、まったく意味無い。
2022/03/29(火) 15:26:21.04ID:6kEE5hUV
>>784
その通り
しかしRustの方がプログラミング効率が良くて書きやすくて保守性も良いから
普通はC++使わなくなるよな
2022/03/29(火) 15:32:53.51ID:owrRZ3L6
グローバル変数でi宣言してるヤツとか
理由聞くと書くの面倒くさいからとか
池沼にも程がある
2022/03/29(火) 19:18:21.80ID:ijYpt7F/
>>785
スレ違い。ここに書き込むの禁止な。
下のスレに行け。
C vs C++ vs Rust Part.3
ttps://mevius.5ch.net/test/read.cgi/tech/1643289587/
2022/03/29(火) 19:46:14.12ID:LEuYcsU9
面倒だからメンバは全部public
2022/03/29(火) 20:17:40.82ID:rprUptDm
structって書けよ
2022/03/29(火) 22:21:49.66ID:JBheGd8b
structなんぞ頼らずnamespaceに全部書けよ
2022/03/29(火) 22:27:01.22ID:pxj3Uqek
structはデフォルトがprivateでclassはデフォルトがpublicなことを考えるといっそclassを消してしまった方が愚かな設計がなくなるのでは?
2022/03/29(火) 22:40:45.57ID:q6aCWf20
>>791
それってRustじゃん
2022/03/29(火) 22:45:51.77ID:42Nx7yvC
RustRustうるせーっつーの
巣に帰れ
2022/03/29(火) 23:12:23.14ID:LEuYcsU9
キチガイrust厨しね
2022/03/30(水) 06:33:06.22ID:8NFBSa0P
>>781
学習曲線は横軸時間で縦軸習熟度の曲線やから絶壁が効率よくて、水平やったら誰も理解できん、という曲線やで
2022/03/30(水) 07:12:05.54ID:7Zu/8ZF2
>>791
おいおい逆だろw
禿もアクセス種別の省略時の解釈は十中八九誤りだったと言ってるね
2022/03/30(水) 08:22:59.56ID:WX1Rp50C
>>796
本当だ逆だった…お恥ずかしい
2022/03/30(水) 12:47:10.06ID:mFVNBRSc
しばらくpythonとか触ってたけど今更C++の隠蔽設計とかバカらしく思えてきた
799776
垢版 |
2022/03/30(水) 17:13:54.11ID:+a7BCMWw
>>782
ありがとう
2022/03/30(水) 19:26:05.50ID:xRfGRGrW
オープンな性格なのです
2022/03/30(水) 23:38:58.59ID:rveKwnBH
>>767
河野@琉球大学?(記憶モード
2022/03/30(水) 23:47:02.15ID:rveKwnBH
しばらくgoとか触ってたけど今更C++のクラスベースのオブジェクト指向とかバカらしく思えてきた
2022/03/30(水) 23:49:39.17ID:rveKwnBH
ていうかプログラミング言語とか人間の愚かさに対する対策なので
特にシンタックスシュガー的な言語要素は突き詰めれば突き詰めるほど頭おかしい言語になっていくのは必定
2022/03/30(水) 23:52:55.50ID:eQfKD0DM
>>802
GoもRustもclassなんてなくてstructしかないが困らないもんな
2022/03/31(木) 01:51:31.09ID:nXMYhSR8
>>802,804
チンチャそれな!
2022/03/31(木) 02:10:02.10ID:lTtwcp13
C++とオブジェクト指向を関連付けて考えるからおかしくなる
C++の内包する多様なパラダイムの中にオブジェクト指向が含まれてるだけ
C++の良いところは何でもありなところ
2022/03/31(木) 02:53:58.08ID:lTtwcp13
C++のclassもオブジェクト指向のための文法として捉えるべきではない
2022/03/31(木) 03:00:57.77ID:3NXOGCnE
C++のclassにpolymorphicというキーワードがあればclassとして理解しやすかっただろうに

C++自体が古いから仕方ない面もあるのだが
2022/03/31(木) 05:37:45.41ID:ZLovgCJ7
>>804
C++ も struct だけでもたいして困らんけどな
2022/03/31(木) 06:50:05.99ID:yEOSoCRj
SmalltalkやEiffielみたいにOOPとしての完璧さを目指した言語ではないからなC++は
PascalへのアンチテーゼがCであったように、完璧さを目指すことへのアンチテーゼでもある
そこを批判するやつとは根本的に相容れない
2022/03/31(木) 06:54:16.14ID:ivAOVlIc
CからC++へ行かずに
CからGoとRustへ行けば十分に問題ない
2022/03/31(木) 08:09:28.04ID:il5bYK9P
>>811
>>787
2022/03/31(木) 17:34:12.61ID:4cSTCvUa
>>767
言い回しがそいつのtwitterに出てくる感じと同じすぎる
ワイ大学生なんだけどその人20年以上前からそんな口調なのか
2022/03/31(木) 17:45:20.70ID:R4GrqV7T
河野氏になんか恨みあんの?
俺知り合いだから代わりに言っとくよ
2022/03/31(木) 19:53:32.15ID:mHRscCZz
if (xmm0 == xmm1)って下のやり方しかない?
_mm_movemask_epi8(_mm_cmpeq_epi...) == 0xFFFF
2022/03/31(木) 21:25:00.23ID:SxSNo1AU
>>814
嫌な知り合いすぎる
無自覚?
2022/04/01(金) 01:39:47.02ID:/eP2awHk
PTESTがあるぞ
2022/04/01(金) 20:07:44.20ID:kF+DLIFz
>>817
_mm_testc_si1281命令でできるのか
サンクス
2022/04/02(土) 03:00:41.15ID:JI80ciY+
ハンガリアン記法、いまだ健在なり
820デフォルトの名無しさん
垢版 |
2022/04/02(土) 05:57:08.65ID:iaVgC0+D
プログラムほぼ未経験だけどこれから始めます
今は坊主頭の人の本を読み始めたところです
IDEのCLionを考えています
他におすすめあったら教えてください
2022/04/02(土) 08:28:40.83ID:KzPuamrt
Visual studioオススメ。VSCode+CMakeでもいいぞ
2022/04/02(土) 12:16:55.77ID:roqf8g4r
bitsetで実装し終わった後にvector<bool>がconstexpr対応してる事知ったんだが?
はー先に教えてくれよ(クソデカため息)
2022/04/02(土) 12:49:25.68ID:/j0/DBCU
vector<bool>なんか使っちゃいけません
2022/04/02(土) 14:22:05.97ID:YBLKDYh3
bitsetを実現するのならvector<bool>は妥当
だと思う派
2022/04/02(土) 14:30:40.42ID:YBLKDYh3
しかしvectorKbool>様のブツ(一般に数千ビットとかのデカくて比較的疎なやつ)がconstexpr対応している
と特段のありがたみと
かあるん??
2022/04/02(土) 14:35:10.49ID:X+p83iug
二進法で書いちまった方が…
2022/04/02(土) 14:36:56.48ID:T5fexWVc
vector<bool> 駄目って言ってる奴らって思考停止のバカでしょ

「特殊化されてるのである時は注意が必要」というのを理解できず思考停止でとりあえず禁止と見なしてるバカ
2022/04/02(土) 14:38:37.01ID:YBLKDYh3
これか
https://cpprefjp.github.io/lang/cpp20/more_constexpr_containers.html
やっぱ内部でループのみならず、new / deleteするような関数までconstexprであってほしいと願うマニアが一定数居るんやな……
2022/04/02(土) 14:40:50.98ID:CNYN+CEs
キューとかスタック的な使い方なら自然だと思うね
2022/04/02(土) 14:44:28.98ID:p6D1htC0
一度作ってみたけどconstexpr関数内でnewしたらその関数内でdeleteまでしなきゃいけないのは使いづらい気がする
2022/04/02(土) 14:53:16.59ID:ARI85DWJ
まずはvector<bool>で実装してみて問題あるなら考える派
2022/04/02(土) 14:53:28.58ID:YBLKDYh3
だがちょっとまって欲しい毎秒1億も2億も回るようなループの中でこそ高速化が必須だが
そんなループ内でnew /deleteしようとする発想が最初からなんかおかしいのではないか
2022/04/03(日) 18:44:27.58ID:NmP3n2Yz
struct Hoge
{
std::vector<Hoge> hoges_;
};

ってなんでコンパイル通るの?
hoges_の定義時点ではまだ、Hogeの定義は完了していないのに。
2022/04/03(日) 19:05:25.24ID:Yvr+7/y4
struct Hoge {
 Hoge* ptr;
};
が通るのと同じ理屈なんじゃない?
2022/04/03(日) 19:25:23.89ID:7tOdFV5I
ソースコード次第やな
allocatorでサイズ使いそうなもんだけど
2022/04/03(日) 19:33:06.66ID:5C/3HoVM
宣言の時点では別に適当
2022/04/03(日) 19:35:01.81ID:BfkCmsi5
宣言?
どこにも宣言のみの記述はありませんけど?
2022/04/03(日) 19:48:52.09ID:CJTxuxUG
半角全角使うな厨が絶滅しますように (AA略
2022/04/03(日) 20:07:54.56ID:Mnzv/avn
定義自体は再帰してても大丈夫じゃない?
2022/04/03(日) 20:32:55.79ID:sNbs7j4z
>>839
あそう、だったら

struct Hoge {
 Hoge hoger;
};

これもOKだろw
2022/04/03(日) 20:58:54.41ID:NWvQ4doQ
参照だったらサイズが一意になるから問題なく処理できる
実態だったら無間地獄に落とされるからNG
2022/04/03(日) 21:17:02.42ID:sNbs7j4z
>>841
839は参照じゃないじゃん
話し通じないな
2022/04/03(日) 22:20:50.07ID:wOH19oBO
えっstd::vector<T> hoge_; とやった場合Tが何であってもその場でhoge_のサイズは決まるから
struct Hogeのメモリレイアウトは鎧袖一触で決まるか
ら何の問題も無い

決まらないのはhoge_のインスタンスがポインタで保持することになるヒープ上の領域のサイズであって
struct Hogeのサイズは上述の通りstruct Hogeの定義を一通り見たとき鎧袖一触で決まっているから
Hoge::hoge_をインスタンス化するタイミングで問題無くインスタンス化されるという印象のような希ガス
いや知らんけど
※ 個人の感想です
2022/04/03(日) 22:33:18.09ID:wOH19oBO
とオモタがなんかVS2019(C++14)で試したら以下のコードのビルドが通る怪現象やな……
template<class T, int N>
class VarArr {
 int T[N];
};

struct Hoge {
 VarArr<Hoge, 3> m_arr;
 int m_x;
};

Hoge x;

多分環境に拠るんだと思う
2022/04/03(日) 22:35:40.26ID:wOH19oBO
VarArr<T, N>の定義をまつがえたサーセン……orz
以下のコードなら正しくビルドエラーになる
template<class T, int N>
class VarArr {
T m_arr0[N];
};

struct Hoge {
VarArr<Hoge, 3> m_arr;
int m_x;
};

Hoge x;

ワイの答えはこれや!
2022/04/03(日) 23:14:48.08ID:Mnzv/avn
>>839で適当に回答したけどメンバとしてを実体で持つかポインタで持つかで通るかが決まるな
2022/04/03(日) 23:38:16.75ID:sNbs7j4z
struct Hoge
{
int a[sizeof(Hoge)];
};
はHogeがまだ定義されていないから、コンパイルできない
だったら、なぜ
std::vector<Hoge> hoges_;
は許可できるんだ
2022/04/03(日) 23:53:21.86ID:dOp+WKyA
>>847
規格的に問題ないからだが、まあポインタなんでサイズ知らんでもええからだな
2022/04/04(月) 00:18:36.05ID:F+M9/rKi
>>847
std::vector<Hoge> hoges_; はクラスないしstructのサイズには影響しないからじゃないの?
そのクラスないしstructはstd::vector<Hoge> hoges_へのアドレスを保持するだけでしょ?
クラスないしstructの中でのhoges_のサイズはすでに決まっている
2022/04/04(月) 00:23:58.82ID:NuCanqg0
>>847
>>843に書いたが
struct Hoge {
 std::vector<Hoge> hoge_;
};
の実質は
struct Hoge {
 struct {
   (&(hoge_[0])を指すポインタ);
   (管理用のいくつかのメンバ)
 } hoge_;
};
とゆーことなのでstruct Hogeの中にhoge_[0..]の実体が埋め込まれるわけでは無いから、
hoge_[0..]の型が決まっていなくともstruct Hogeのサイズは問題無く決まるというしくみ

一方hoge_[0]の実体がstruct Hogeに埋め込まれる>>845のケースは気体どおりエラーになる
というワケ
2022/04/04(月) 09:09:53.47ID:14cK0a9Z
>>843
鎧袖一触の使い方間違いで草w
2022/04/04(月) 23:12:20.74ID:JNKuDAOB
4、5年c++やってるけどまともなものを作れない
どれくらいで、ネットで有名なソフトって作れるものなの?
例えばvscodeみたいな便利なアプリ
2022/04/04(月) 23:46:47.47ID:9GHqD2yn
>>852
VScodeはElectronつまりJavaScriptで書かれてるよね
2022/04/05(火) 00:26:55.67ID:btSnYNGS
>>852
C++Builderが楽だよ
2022/04/05(火) 01:43:21.89ID:QuV3GhxG
windowsは触ったことがない
2022/04/05(火) 02:00:35.56ID:QYslDBWm
ならばElectronかTauriがオススメ
WindowsだけでなくMacでもLinuxでも動くマルチプラットフォーム
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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