C++相談室 part161

■ このスレッドは過去ログ倉庫に格納されています
2022/05/21(土) 21:23:29.59ID:kYXfaM+5
前スレ
C++相談室 part160
https://mevius.5ch.net/test/read.cgi/tech/1649979572/
2022/08/04(木) 12:42:29.07ID:foJKY5q3
まあ売る方も買う方も承知でやってる互助会みたいな世界もあるから
2022/08/04(木) 12:49:09.16ID:iuI8tOa1
自社製品のすべてをわかっている事業者なんてないよ
もしものためにお客様相談窓口あるわけだし
2022/08/04(木) 12:58:24.87ID:YlkBTNtd
>>423
そう言うことではない。
では、あなたに聞きたい
車を買いに行って、ディーラーの人に「このボタンなんですか?」と質問して「押してみないと分からない」なんて答えたらどう思いますか?

ディーラーが設計してるわけではないことくらい誰でも知ってるけど、ここで買っていいのか?って思いませんか?
2022/08/04(木) 13:09:55.40ID:4HLZV6kX
>>421
C++使いはPCのパワーユーザーとは限らんよ
それにPCだって無数の技術が詰め込まれていて
たとえるなら1つの大学のようなもので
迂闊に「俺はものすごくPCに詳しいんだ!」なんて言うと
ほぼ100%恥かくしな
2022/08/04(木) 13:28:40.86ID:YMWE04jW
>>424
外部仕様と内部仕様の区別もつかないボンクラ乙w
2022/08/04(木) 17:01:53.54ID:bxsqlndn
つかC++関係無くね
どの工程にでも言える話をここでされても困るんだけど
2022/08/04(木) 18:34:39.03ID:Te3vhihz
>>426
お前は文章も読めないのか
2022/08/04(木) 18:53:04.81ID:iPtxbdCe
まず>>421がC++との関連を示すべき。それ以外のところで話を広げても不毛。
2022/08/04(木) 19:04:48.18ID:4E08n67o
>>420
解決規則が知りたいと思ったのですが状況によって難しそうですね
混乱してきたので整理して考え直します
ありがとうございました
2022/08/04(木) 19:32:37.46ID:YMWE04jW
>>428
マジで言ってるならもう少し勉強してきた方がいい
ボタンの操作とかのように取説に載ってるのは外部仕様
>>421はそういう話じゃない
原理はわからなくてもテストちゃんとしとけばいいという世界もある
2022/08/04(木) 20:58:43.21ID:msSueNHM
windows作ってる開発者や営業にメモ帳のショートカット全部言えるか聞いてみればいいんじゃね?
外部仕様すら知らんの?馬鹿なのかなって
433デフォルトの名無しさん
垢版 |
2022/08/04(木) 21:17:24.76ID:isEYuHXY
「メモ帳のショートカットを言え」がなんのことやらわからない。
2022/08/04(木) 21:27:41.19ID:hPtMGH66
最大限にエスパー能力を発揮してアクロバティックに解釈するとテキスト形式のファイルのことではないかと思う。
デフォルトだとメモ帳に関連付けられているからテキスト=メモ帳という認識が出来上がる可能性はある。
435デフォルトの名無しさん
垢版 |
2022/08/04(木) 21:36:35.22ID:isEYuHXY
関連付けされた拡張子の話をしてるのかな?
それでもあとからインストールされたものでコロコロ変わるから、意味不明だな。
2022/08/04(木) 21:58:15.71ID:msSueNHM
メモ帳はnotepad.exe、ショートカットはキーボードショートカットの意味だがそれすら想像つかないなんてずいぶん頭が悪いな
パソコン得意じゃないのはお前のことじゃん
437デフォルトの名無しさん
垢版 |
2022/08/04(木) 21:59:21.33ID:isEYuHXY
>>436
Windowsのショートカットはそういう意味じゃない。
438デフォルトの名無しさん
垢版 |
2022/08/04(木) 21:59:22.67ID:Xd358RP3
ショートカットキーのことでは?
439デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:00:54.91ID:isEYuHXY
>>438
そんなのわかっているが、彼の略語が自分にしかわからないから問題にしている。
440デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:04:19.71ID:isEYuHXY
>>438
メモ帳にショートカットキーは割り当てられていない。
メモ帳を起動する方法の種類を言っているんだろう。
441デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:05:15.46ID:isEYuHXY
自分のPCの設定をデフォルト設定だと思っているジジイだろうな
442デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:05:56.15ID:isEYuHXY
変なのいくらでもいるんだなと思った
443デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:06:10.34ID:Xd358RP3
争いが起きるのは霊的な問題もあると思うんですよね。
先日亡くなられた安倍元総理も生前大切にされていた霊験あらたかな壺があるそうなんですよ。
ただ、とても値が張るそうで、安いものでも3000万を下らないそうなんです。
そこで、5ch有志でお金を出し合って共同で購入しませんか?
そうすればスレも安定すると思うんです。
444デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:17:42.40ID:isEYuHXY
Windowsのファイルの種類のひとつが「ショートカット」というのがわからなくなって、Windowsそのもののことがわからないのに知ったかぶりで物を言う認知症のじいさんなんだろ。
2022/08/04(木) 22:18:06.28ID:bxsqlndn
おまえら全員Windows板行って二度と帰ってくんな
2022/08/04(木) 22:21:02.93ID:ICFzqGoM
winならアクセラレータキーだろ
2022/08/04(木) 22:24:31.32ID:YMWE04jW
>>432
そらで全部言える必要ないだろ
開発者なら外部仕様にアクセスできるだろうから一覧くれって言えば出すことはできるだろ
448デフォルトの名無しさん
垢版 |
2022/08/04(木) 22:27:08.73ID:isEYuHXY
メモ帳にショートカットキーがあるという架空の設定で話していてもよくわからない。
2022/08/04(木) 22:42:58.32ID:142AVZpN
F5で現在時刻入力とかCtrl+Gで行番号指定ジャンプとかCtrl+-/+/0で縮小・拡大・元に戻すとかの
メモ帳のキーバインドのことなんじゃないのどうでもいいけど
450デフォルトの名無しさん
垢版 |
2022/08/04(木) 23:10:21.02ID:isEYuHXY
>>449
メモ帳そのもののことを言っていたわけか。メモ帳を使っている人間がどれだけいるのか疑問だけど。
2022/08/04(木) 23:16:20.71ID:KJ7UAuj1
>>443
いい歳こいてオカルトは恥ずかしいぞ
2022/08/04(木) 23:42:02.70ID:CV93jyTL
というか、あれってエディットコントロールの機能ですよね
エディットコントロールのソースってどっかでみることが出来ますかね?
2022/08/04(木) 23:54:18.07ID:hPtMGH66
Windows のソースコードは一部の政府機関や学術機関と契約を結んで提供している事例はあるが、
個人で見せてもらえるようなもんじゃないよ。
あえて言うなら ReactOS (Windows 互換の OS を目指すオープンソースプロジェクト) が参考になるかもね。
454デフォルトの名無しさん
垢版 |
2022/08/06(土) 14:19:53.03ID:eSBCWCwI
>>415
MyClass a();
MyClass & b = MyClass();
const MyClass & c = MyClass();
MyClass d = MyClass(); ← コピーコンストラクタ発動?
それともムーブ?
2022/08/06(土) 14:34:58.43ID:mmg0BHVy
explicit指定してないならムーブだ
456デフォルトの名無しさん
垢版 |
2022/08/06(土) 15:11:57.86ID:eSBCWCwI
>>421
javascriptやelectronやphpやvb/vbaの方が判ってない人が描いてる確率は高い
457デフォルトの名無しさん
垢版 |
2022/08/06(土) 15:16:10.01ID:eSBCWCwI
>>449
最近覚えたのは Win+G ですね判ります
458デフォルトの名無しさん
垢版 |
2022/08/06(土) 15:17:59.77ID:eSBCWCwI
>>449-450
ああそれで
「押してみないと判らない」
って話が出て来たのか
普通の人間なら闇雲に押すんじゃなくて
押す前にマニュアルやヘルプファイル読むだろうな
459デフォルトの名無しさん
垢版 |
2022/08/06(土) 15:44:10.54ID:xsmVc9Uv
GUIでキー操作というのは矛盾も含んでいるんだけどな
2022/08/06(土) 17:10:45.24ID:Md6Uzv/o
>>454
基本的にはムーブコンストラクタが呼ばれる場面なんだけど……。
一定の条件でコピーやムーブを省略 (Copy elision) してよい場合がある。
MyClass d = MyClass();
はその条件にあてはまるので
MyClass d();
と同じ挙動になることがある。 (コピーもムーブも起こらない。)

省略が許される場合の一部が C++17 以降では省略が必須に変更された。
また、 C++17 以降で省略が必須のときはコピーコンストラクタもムーブコンストラクタも存在しなくてよい。
故に以下↓のような例は C++14 ではエラーだが C++17 では通る。

struct MyClass {
MyClass(const MyClass &) = delete;
MyClass(void) = default;
};

int main(void){
MyClass d = MyClass();
}
2022/08/06(土) 18:15:44.12ID:Cf/I657k
>>459
初代macか
2022/08/07(日) 09:01:37.78ID:5PDs1Uf6
むかしまだMacOSが漢字TalkだったころにMacキチガイの知りあいが
「Windowsなんて駄目だよ、だいたいマウスにボタンが2つあるみたいなシンプルさを欠く設計な上に
なにかとキーボードを併用しないといけない、GUIとして未完成といわざるをえない(キリッ」とかいいながら
Macでマウスボタンとコマンドキーやらシフトキーのコンビネーションをものすごい熟練の手付きで操作していたのが印象的だった
463デフォルトの名無しさん
垢版 |
2022/08/10(水) 19:17:19.29ID:0w2i6tTa
windows10でスタートメニューを非表示にしたいのですが良い方法ないですかね?
スタートメニューのHandleを取れれば良いのですが、、。
ネットでいろいろ調べましたが見つけたサンプルコードは、windows10では動きませんでした。
2022/08/10(水) 19:51:18.63ID:kx7L/9BB
何をしたいのかいまいちわからんけどシェル差し替えればいいんじゃね?
https://docs.microsoft.com/ja-jp/windows/configuration/kiosk-shelllauncher
2022/08/11(木) 00:32:53.82ID:8ZZGyUVA
以下のプログラムを実行したとき、変数xとyが初期化されるのはどういう理屈ですか?

class myClass
{
public:
int x;
int y;
};

int main()
{
myClass c{ 100, 200 };
}

暗黙のコンストラクタで代入されているのかと思いましたが、
xとyをprivateにするとコンパイルエラーになるので違うようです。
インスタンス生成の{}を()に変えるとコンパイルできなくなるのでそれもどうしてか知りたいです。
2022/08/11(木) 00:36:21.03ID:sYNKGRSM
struct myClass
{
int x;
int y;
};

int main()
{
struct myClass c = { 100, 200 };
}
と同じ理屈じゃね?
2022/08/11(木) 00:47:31.68ID:sRpXvn0F
publicだけならcの構造体と同じだからね
2022/08/11(木) 07:19:27.31ID:MV37ziRv
C言語からやってないと構造体の初期化は理解出来んだろうな
2022/08/11(木) 08:18:14.02ID:l648IjCs
trivial ctorじゃ説明つかないからなaggregateは
2022/08/11(木) 09:13:13.76ID:7cUH/Z7I
建増しでやってきた言語だからしょうがないけど初期化の方法がやたらいっぱいあって混乱する
2022/08/11(木) 10:28:32.68ID:5k4DsUHs
>>465
集成体初期化 (Aggregate Initilization) に該当する。
クラスが一定の条件を満たしたときに集成体の扱いになる。
文法表記を似せているだけの別物と思った方がいいかも。

ちなみに C++20 からは丸括弧でも集成体初期化が出来るようになってるよ。
2022/08/11(木) 16:39:22.98ID:8ZZGyUVA
>>466-467, >>471
ありがとうございます
C言語の構造体の初期化と同じですね
後方互換を保つために残してるような気がしました
コンストラクタ定義が無いときしか使えないんですね
473デフォルトの名無しさん
垢版 |
2022/08/15(月) 03:58:18.08ID:NUjkjU1P
皆さんにお聞きしたいんですけど
inline展開しまくることによる弊害って主になんでしょうか?
2022/08/15(月) 04:01:03.39ID:93bmEmXu
コードがでかくなる
2022/08/15(月) 04:48:08.80ID:nv9KtGy3
コンパイルが遅くなる
2022/08/15(月) 06:06:45.25ID:y6q1hWI/
もうデメリットはなくなって来たな
実際のコンパイラもデフォでinlineぽい動きするし
ただの開いたサブルーチンというだけでなく定義の統合がありがたい
477デフォルトの名無しさん
垢版 |
2022/08/16(火) 10:58:28.11ID:2x3mrzZQ
デバッグが面倒臭くならない?
そうだあれか
リバエンし難くする効果があるとか
478デフォルトの名無しさん
垢版 |
2022/08/16(火) 11:14:28.05ID:NN3FHXHG
インライン展開するとスタックトレースで関数名が出なくなりますか?
479デフォルトの名無しさん
垢版 |
2022/08/16(火) 14:07:30.89ID:GaLydNkX
>>478
コンパイラにもよると思うけど
おそらく出なくなると思います!
480デフォルトの名無しさん
垢版 |
2022/08/16(火) 14:11:45.62ID:GaLydNkX
>>474-475-476-477
なるほど…
481デフォルトの名無しさん
垢版 |
2022/08/16(火) 14:16:34.26ID:GaLydNkX
c++ってまだまだ需要あると思いますか?
私はあるかなと思うんですけど...意見ください。
2022/08/16(火) 14:22:21.76ID:+o+ePBjP
何年も前だがインライン展開の基準を指定する GCC のオプションで
めちゃクソに緩めの数値を指定 (つまりインライン展開されまくる) して
ベンチマークをとった記事が話題になったような覚えがある。

結論を覚えてないし、どこで見たのかも覚えていないので役に立たん話ですまぬ。
2022/08/16(火) 14:48:39.55ID:oZyv9MO8
>>481
C++は需要が減り衰退していく
昔はともかく現代の視点からは、設計が悪くそこへ建て増しを繰り返しているため、言語として劣っていて使いにくい
そのため次第に既存システムの保守がメインの言語となっていっているが、それさえGoogleの発表したCarbonのような言語の方がプログラマーにとってもありがたい
もちろんそのCarbonでさえそのFAQにこれはあくまでも既存の保守用の言語でと書かれている
2022/08/16(火) 14:52:39.64ID:16oeTihW
設計思想のないバカがさわるとえらいことになる言語だからな
485デフォルトの名無しさん
垢版 |
2022/08/16(火) 15:07:03.88ID:2x3mrzZQ
>設計が悪くそこへ建て増しを繰り返している

言語仕様がそうなっていることは認めるが
設計が悪い部分は無理して使わず良い部分だけ使えば良い話でもある
2022/08/16(火) 15:17:41.42ID:yx28uGuU
皆が皆そうしてくれないから自然に淘汰されていく訳だが
2022/08/16(火) 15:24:11.24ID:n8xVLVvG
>>481
需要で言えばCOBOLでさえ無くなっていないからなぁ。

c++の完全置き替えはRustがようやっとスタート地点に立てたくらい。でもRustは初心者お断りだから無理なんじゃない?

個人的にはRustを参考にした初心者向けのサブセットC++か、Rustの複雑さをマイルドにしたスタックフレーム指向の新言語が出てくると思う。
2022/08/16(火) 15:54:40.98ID:BglBygNH
msvcはインライン展開あんましてくれないな
2022/08/16(火) 15:57:43.55ID:bqAknUU+
>>487
誰が見てもC++よりRustの方が言語仕様も小さいしシンプルで洗練されていて学習しやすいよ
これは両方を使っている人なら必ず分かるから>>487は知らないものを妄想で語っている?
ちなみにRustはコンパイラによるアドバイスが非常に親切でプログラミング言語の中でもトップクラスな点でもC++との差異が大きいね
2022/08/16(火) 16:21:45.34ID:+o+ePBjP
どうだろうなぁ。
C を学んでいる人が多かったというところから実務に使いながら少しづつ C++ に習熟していくという動線があったわけで、
C という前提が崩れたら Rust のほうが合理的に設計されていて楽かもしれないとは思う。
ただ、その一方で C++ が消えてなくなるほど劣勢になる気はしないんだよな。
491デフォルトの名無しさん
垢版 |
2022/08/16(火) 16:38:57.39ID:GaLydNkX
c++とかcやってからじゃないと到底無理
ってよく聞くんですけど
どういうことですかね?
492デフォルトの名無しさん
垢版 |
2022/08/16(火) 16:39:15.94ID:uEezmwqj
class b:a{};
class a{};
このコードはコンパイルできませんが、aを前方宣言せずにコンパイルを通す方法ってありますかね?
493デフォルトの名無しさん
垢版 |
2022/08/16(火) 17:52:12.39ID:2x3mrzZQ
1.
class a;
class b:a{};
class a{};

2.
class a{};
class b:a{};
2022/08/16(火) 17:53:02.94ID:+o+ePBjP
>>491
個々のルールを頭に詰め込むだけってのはしんどい。
思想に沿うように個々のルールが制定されているので思想が分かればある程度はルールの想像がつく。
低レイヤで何が起こるかある程度は認識していると思想が把握しやすい。

C++ の駄目な部分を見た後に Rust を見ると「こういうのが真っ当な仕組みだよな!」という納得もしやすいし。

ただ、 C++ の「汚くていいんだ」というのもそれはそれで優しい世界なので私は好きだよ。
2022/08/16(火) 19:22:32.37ID:wpAgGEI5
>>489
初心者からすればC++とRustの差なんて無いに等しい。コード1行書くのにいくつのルールを守る必要があるんだよ。
シンプルで洗練されている言語が初心者に良いというなら、RustよりFORTH(とその末裔)の方が初心者にふさわしいと思うわ。
2022/08/16(火) 21:48:30.73ID:yMlIVT9V
母国語みたいなもんなんでCの覇権は変わらない
2022/08/16(火) 22:17:19.28ID:bk3ffD66
>>495
FORTHはCと同等の速さを出せないし問題のすり替えはみっともない
RustはCと同等の速さを出しつつ現代的なプログラミングしやすい様々なパラダイムを洗練してシンプルにまとめている
FORTHを入れてC/C++/Rustの四者で比較してもRustがプログラミング効率も良いと同意できるだろ
2022/08/17(水) 02:44:27.88ID:C+o8slGL
夏厨って夏に湧いて出る厨房の事を指す言葉だったはずだけど
その厨房も今じゃ中年おじさんなんだよな
2022/08/17(水) 04:51:00.22ID:bVkA6pax
>>497
Rustは初心者が学習しやすい言語ではないし問題のすり替えはみっともない
2022/08/17(水) 05:49:59.92ID:jVY1lffe
>>499
そうかな
C++(スマポ必須で所有権)よりはRustがシンプルではっきりと初心者向けだよ
自動解放で安全が前提でないと困るからその二つが比較対象で合っているよね
501デフォルトの名無しさん
垢版 |
2022/08/17(水) 07:00:37.46ID:8QCiHT08
皆さんのオブジェクト指向に対する考え方
おください!
2022/08/17(水) 08:26:24.61ID:/AaT26gR
>>500
C++との比較なんてしていない。よく読め。
C++が駄目なのと同じくらいRustも初心者の学習コストはダメ。
C++はまだ部分的に汚く使う柔軟性を持つから、better c くらいのところから段階的に使う余地はある。しかしRustはいきなり複数の概念(所有権とか参照とかmoveとか)を使わないとプログラムが書けない絶壁の学習コストをしているから、「とりあえず使う」という選択肢が無い。初心者の選ぶ言語にはならんよ。
2022/08/17(水) 08:34:18.80ID:/AaT26gR
>>501
オブジェクト指向のオブジェクトは主体/客体のサブジェクト/オブジェクト。
プログラマー(主体)が操作・命令する対象(客体)をまとめて整理する考え方&手法がオブジェクト指向。
2022/08/17(水) 08:40:13.74ID:p6RiGGmW
>>502
C++のスレで「C++と比較していない!」と言い出すそなたの頭のネジが飛んでるとしか
2022/08/17(水) 08:43:38.31ID:T2QftTg0
C++のスレでRustの話をする人の頭のネジは緩んではいないのか
2022/08/17(水) 08:50:31.11ID:svOZgDad
他の言語との類似や相違など色んな話題が出てもええんちゃう
特にRustはC++後継言語の一つでもあるし
2022/08/17(水) 08:54:01.88ID:tNGd1WjN
勝手に決めんな
2022/08/17(水) 09:18:05.65ID:3A+P/0wQ
GAFAMがRustをC++の後継言語の1つとして位置付けてRust Foundationを共同で設立したりしてますもんね
ただしGoogleは既存コードのメンテ用としてはCarbonもC++の後継言語の1つとして実験していますね
Rustはシステム更新時や分離できる新たな部分に対してC++の後継言語となるのでしょう
2022/08/17(水) 09:43:49.92ID:G5jxF3Mu
>>504
C++関連としては>>487
あとは「Rustは初心者向けじゃないからC++後継できるところまでは行かん」という主張に対する話。C++だって学習障壁から初心者取り込みできずにユーザー規模が縮小しつつあるのに、もっと絶壁のRustが普及するとは思えん。
C++後継としてはRust以外の初心者に配慮した言語が来るんじゃない?
2022/08/17(水) 10:06:28.08ID:JpVQLN3v
スマポすなわち所有権を使ってるC++プログラマーならRustは簡単で楽勝
まともな案件ならばスマポ使っているし、急にではないけど、より安全なRustへ徐々に少しずつ移っていくんだと思うよ
2022/08/17(水) 10:18:24.59ID:T2QftTg0
>>506
それなら類似や相違など語り合うスレのほうがいいのでは?
無いなら立てれば良いし
C++の相談に来ているスレで今はRustだよなんて言われてもね
2022/08/17(水) 10:27:35.49ID:tNGd1WjN
学習障壁でユーザー規模が縮小って
なんかCOBOL臭えな

アホフィルタを外すより待遇を改善すべきだろ
マ板でやるべき内容だな
2022/08/17(水) 10:30:15.50ID:VIybtmpa
rustはアホでも書ける言語ではないよな
良いか悪いかはさておき
2022/08/17(水) 10:41:14.61ID:tNGd1WjN
は? 「C++が使える」アホは俺でも知ってるが
それがこの話と何か関係あるのか?
2022/08/17(水) 10:45:01.06ID:ysQxp/zr
お前が知ってるかどうかなんか知るかよ
荒らしたいだけなら少し黙ってろ
2022/08/17(水) 11:20:40.84ID:ijLXutEl
きみらはなぜ些細なことですぐ喧嘩するのか・・・
2022/08/17(水) 12:01:52.68ID:75soL8XV
>>509
Rust++ですね判ります
2022/08/17(水) 12:03:04.79ID:tNGd1WjN
都合が悪くなると荒らしたいだけとか全く
C++相談室でRustを連呼するやつに言われたかねえな
2022/08/17(水) 12:06:02.53ID:tNGd1WjN
相談者はチームで突然、Rustに変えようと言い出せば
解決につながるとでも言うのか
そんな力のあるやつが相談に来るとでも?
2022/08/17(水) 12:31:04.58ID:GcPebzMx
シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
https://news.mynavi.jp/techplus/article/programinglanguageoftheworld-44/
2022/08/17(水) 12:50:49.80ID:hpgzuSC5
手動メモリ管理のZigでは無理だよ
手動メモリ管理で複雑化したときにどうしても発生している穴を防ぐことがどのIT企業でも課題となっている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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