C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
C++相談室 part150
■ このスレッドは過去ログ倉庫に格納されています
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
428デフォルトの名無しさん
2020/04/26(日) 15:42:28.68ID:X/1sAzcb >>428
>参照カウントではないC#でも弱い参照が存在することは
@強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています
A元祖マークアンドスウィープ法、コピーGC法では原理的にリークは発生しませんし、発生し得ません
>参照カウントではないC#でも弱い参照が存在することは
@強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています
A元祖マークアンドスウィープ法、コピーGC法では原理的にリークは発生しませんし、発生し得ません
430デフォルトの名無しさん
2020/04/26(日) 15:55:37.10ID:O/ywVmO1 >>410
おまえさんWikipediaってどんな所だか知ってるか?
ちなみに俺もとあるページを執筆したことがあるが
俺はどこの馬の骨か聞かれもしなかったし
アホなミスをしでかしてもあんまり指摘されないし
悪意のある文面をやめさせるのにも手間取るぞ
査読できる人でないと鵜呑みは危険だぞ
おまえさんWikipediaってどんな所だか知ってるか?
ちなみに俺もとあるページを執筆したことがあるが
俺はどこの馬の骨か聞かれもしなかったし
アホなミスをしでかしてもあんまり指摘されないし
悪意のある文面をやめさせるのにも手間取るぞ
査読できる人でないと鵜呑みは危険だぞ
431デフォルトの名無しさん
2020/04/26(日) 15:57:08.52ID:X/1sAzcb 一方、マーク・アンド・スイープ方式やコピーGC方式では循環参照によるメモリリークは
発生しないが、非意図的オブジェクト保持(unintentional object retention)が引き起こす
メモリリークを強参照のみによる実装で解消することは難しく煩雑であり、
実装を簡略化するために弱参照が用いられることがある。
https://ja.wikipedia.org/wiki/%E5%BC%B1%E3%81%84%E5%8F%82%E7%85%A7
発生しないが、非意図的オブジェクト保持(unintentional object retention)が引き起こす
メモリリークを強参照のみによる実装で解消することは難しく煩雑であり、
実装を簡略化するために弱参照が用いられることがある。
https://ja.wikipedia.org/wiki/%E5%BC%B1%E3%81%84%E5%8F%82%E7%85%A7
433デフォルトの名無しさん
2020/04/26(日) 16:10:32.96ID:X/1sAzcb 使ってる言葉の意味が異なる人を説得するのは無理だと悟った
434デフォルトの名無しさん
2020/04/26(日) 16:21:48.25ID:YMFvD6ns また面倒なのが出てきたな
wikipediaのリンクで終わったかと思ったのに
QZは頭が弱いから
wikipediaのリンクで終わったかと思ったのに
QZは頭が弱いから
435デフォルトの名無しさん
2020/04/26(日) 16:22:02.20ID:CnmrePPR >>426
407の定義だと曖昧すぎて気持ち悪くなるって例出しただけ
確保したメモリを使用しなくなったのに解放しないまま管理外にするのが狭義のメモリリーク
それ以外の現象もメモリリークと呼ぶのは知っているが、その呼び方は混乱招くから好きじゃないって立場
407の定義だと曖昧すぎて気持ち悪くなるって例出しただけ
確保したメモリを使用しなくなったのに解放しないまま管理外にするのが狭義のメモリリーク
それ以外の現象もメモリリークと呼ぶのは知っているが、その呼び方は混乱招くから好きじゃないって立場
436デフォルトの名無しさん
2020/04/26(日) 16:26:58.57ID:YMFvD6ns 使わない、使うつもりもない、プログラマが意図しないメモリ
これらが増え続ければリーク
定義じゃなくて十分条件の例
これらが増え続ければリーク
定義じゃなくて十分条件の例
437デフォルトの名無しさん
2020/04/26(日) 16:28:11.48ID:1jKTUwjI >>422
> 明示的に解放できないシステムでどうやって気をつけるんだよ
gc言語で本格的な開発したことないって白状してるようなもんだね
メモリプロファイラで地道に調べるんだよ
あと不要になったらgc任せにせずに即null代入しておけとかよく言われるだろ
> さっきからシステムのバグつってんだろ
システムって何だよ?意味広すぎるから説明になってない
gc言語においては言語レベルではリークしない(循環参照はさておき)
が依然人間の不注意によって実質的なリークは起るわけ
それをお前はリークと呼ばなんだろうけど一般的にそれもリークと呼ばれてる
それだけの話
理解しようぜ
> 明示的に解放できないシステムでどうやって気をつけるんだよ
gc言語で本格的な開発したことないって白状してるようなもんだね
メモリプロファイラで地道に調べるんだよ
あと不要になったらgc任せにせずに即null代入しておけとかよく言われるだろ
> さっきからシステムのバグつってんだろ
システムって何だよ?意味広すぎるから説明になってない
gc言語においては言語レベルではリークしない(循環参照はさておき)
が依然人間の不注意によって実質的なリークは起るわけ
それをお前はリークと呼ばなんだろうけど一般的にそれもリークと呼ばれてる
それだけの話
理解しようぜ
438デフォルトの名無しさん
2020/04/26(日) 16:28:26.47ID:YMFvD6ns 管理外っていうのは何を示してるかよく分からない
439デフォルトの名無しさん
2020/04/26(日) 16:29:38.80ID:fU7fb2M4440デフォルトの名無しさん
2020/04/26(日) 16:43:46.17ID:1jKTUwjI >>423
昔から言われてることだけに昔の記事あったからこれでも読んでみ
ttps://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html
単に何をリークと呼ぶかというだけの話
Javaの開発元のサンの人もこういうんだからそれにあわせようぜ
昔から言われてることだけに昔の記事あったからこれでも読んでみ
ttps://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html
単に何をリークと呼ぶかというだけの話
Javaの開発元のサンの人もこういうんだからそれにあわせようぜ
441デフォルトの名無しさん
2020/04/26(日) 16:45:39.03ID:PBJtHpgo >>438
GCが解放してくれるとプログラマが信じているが事実はそうでないケース
GCが解放してくれるとプログラマが信じているが事実はそうでないケース
442デフォルトの名無しさん
2020/04/26(日) 16:49:23.41ID:PBJtHpgo プログラマーが自分で作ったつもりのスレッドで資源を確保して、
スレッドの最初の関数からreturnしたら全部解放されると思いきや!
実はスレッドプールの1要素としてシステムが握りっぱなしだった、
みたいなテクノロジーホラーが
あるのかも
しれませんね
知らんけど
スレッドの最初の関数からreturnしたら全部解放されると思いきや!
実はスレッドプールの1要素としてシステムが握りっぱなしだった、
みたいなテクノロジーホラーが
あるのかも
しれませんね
知らんけど
443デフォルトの名無しさん
2020/04/26(日) 16:58:02.62ID:4KWblUmJ MSVCのstd::asyncでは
444375
2020/04/26(日) 17:17:04.65ID:mQCdU9mn >>377 のリンク先のソースをすっかり理解できたとは言い難いけど、
この場合の <float, float, float> は (何かの角度, x座標, y座標) みたいね。
vecVisibilityPolygonPoints は最初の要素(角度)でソート済み。
get<1>()でx座標、get<2>()でy座標を取れるから >>375 の第2段落の理屈は有効。
>>363 の質問に戻ると、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
の理解でだいたい合ってる。単一の値の比較でなく
「x座標同士, y座標同士が両方とも近い値の場合だけまとめる」わけだが。
もうひとつ。376で tupple::get と書いたけど、もちろん tuple::get が正しい。
(ここを訂正しておきたかった)。
この場合の <float, float, float> は (何かの角度, x座標, y座標) みたいね。
vecVisibilityPolygonPoints は最初の要素(角度)でソート済み。
get<1>()でx座標、get<2>()でy座標を取れるから >>375 の第2段落の理屈は有効。
>>363 の質問に戻ると、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
の理解でだいたい合ってる。単一の値の比較でなく
「x座標同士, y座標同士が両方とも近い値の場合だけまとめる」わけだが。
もうひとつ。376で tupple::get と書いたけど、もちろん tuple::get が正しい。
(ここを訂正しておきたかった)。
445デフォルトの名無しさん
2020/04/26(日) 17:35:47.46ID:PBJtHpgo ちゅか循環参照するオブジェクトの解放のための正しい方策はマーク&スイープ方式であって
普通の言語においては弱参照はあんま助けにならないハズ
(普通の言語では、一旦解放したオブジェクトを復活させることはプログラマがそのような復活コードを書かない限り不可能なため、
使用予定があるオブジェクトを単に弱参照にしてGCに好きなタイミングで解放させるだけだとプログラムがロシアンルーレットになる
実際のところ弱参照を用いてヒヤヒヤしながら辻褄合わせする(結局何がしかのコードが必要)なぐらいなら、
最初からGCに頼らずに確保と解放をコード上で明示的に計画した方がマシ
で、マーク&スイープ方式はマークのための空間と時間の計算量(探索!)が必要な上に、
その挙動をユーザーが書くプログラムコードから隠しおおせる言語でないと適用できない
普通の言語においては弱参照はあんま助けにならないハズ
(普通の言語では、一旦解放したオブジェクトを復活させることはプログラマがそのような復活コードを書かない限り不可能なため、
使用予定があるオブジェクトを単に弱参照にしてGCに好きなタイミングで解放させるだけだとプログラムがロシアンルーレットになる
実際のところ弱参照を用いてヒヤヒヤしながら辻褄合わせする(結局何がしかのコードが必要)なぐらいなら、
最初からGCに頼らずに確保と解放をコード上で明示的に計画した方がマシ
で、マーク&スイープ方式はマークのための空間と時間の計算量(探索!)が必要な上に、
その挙動をユーザーが書くプログラムコードから隠しおおせる言語でないと適用できない
446デフォルトの名無しさん
2020/04/26(日) 17:38:44.84ID:PBJtHpgo C++でマーク&スイープしようとすると、オブジェクトaを所有するオブジェクトbの確保、が単に構造体をnewするだけでは済まなくなってしまうま
(所有関係をGCに教えるための呼び出しを書かねばならない。プログラムが小汚くなっていき、ぜってー忘れたり間違える
(所有関係をGCに教えるための呼び出しを書かねばならない。プログラムが小汚くなっていき、ぜってー忘れたり間違える
447デフォルトの名無しさん
2020/04/26(日) 17:47:22.05ID:O/ywVmO1448デフォルトの名無しさん
2020/04/26(日) 17:52:01.79ID:GMbq2WIv449デフォルトの名無しさん
2020/04/26(日) 17:58:01.59ID:X/1sAzcb >>446
Boehm GCとか
Boehm GCとか
450デフォルトの名無しさん
2020/04/26(日) 18:06:28.71ID:O/ywVmO1 >>437
> gc言語で本格的な開発したことないって白状してるようなもんだね
おまえさんこそ、相手の経歴や人格を攻撃せねばならんほど窮しているのが露呈してるぜ
頭の中で問題が整理できていれば冷静かつアカデミックに指摘ができるはず
そんなに頭に血が昇るのは問題が整理できていないか沸点の低いアレなやつか又は両方だな
> gc言語で本格的な開発したことないって白状してるようなもんだね
おまえさんこそ、相手の経歴や人格を攻撃せねばならんほど窮しているのが露呈してるぜ
頭の中で問題が整理できていれば冷静かつアカデミックに指摘ができるはず
そんなに頭に血が昇るのは問題が整理できていないか沸点の低いアレなやつか又は両方だな
451デフォルトの名無しさん
2020/04/26(日) 18:08:38.19ID:O/ywVmO1452はちみつ餃子 ◆8X2XSCHEME
2020/04/26(日) 18:28:15.91ID:Kc4H3V0/ >>422
・ GC のない言語でうっかりメモリの解放を忘れる
・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
リークと呼ぶかどうかはともかくとして、
前者で気を付けなきゃならないのと同様に後者にも気を付けないといけないというのは普通のことだと思うよ。
・ GC のない言語でうっかりメモリの解放を忘れる
・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
リークと呼ぶかどうかはともかくとして、
前者で気を付けなきゃならないのと同様に後者にも気を付けないといけないというのは普通のことだと思うよ。
453デフォルトの名無しさん
2020/04/26(日) 18:59:47.51ID:1jKTUwjI454デフォルトの名無しさん
2020/04/26(日) 20:36:09.72ID:sSD7yA0P QZアホやw
Javaのメモリリークを見つけるのがどんだけ面倒なのか全く分からないようだ
こいつプログラマじゃないな
Javaのメモリリークを見つけるのがどんだけ面倒なのか全く分からないようだ
こいつプログラマじゃないな
455デフォルトの名無しさん
2020/04/26(日) 20:55:44.38ID:O/ywVmO1 >>452
> ・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
じゃあ、そもそもGCって何のためにあるんだってことだね
私見ながら、馬鹿馬鹿しいぜ
> ・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
じゃあ、そもそもGCって何のためにあるんだってことだね
私見ながら、馬鹿馬鹿しいぜ
456デフォルトの名無しさん
2020/04/26(日) 20:57:06.36ID:O/ywVmO1 資源を解放すべき盤面で、自動化されてるんだから手を出しちゃダメ
あげく解放されませんでした、解放されてるかどうか確認をせよ
何なのコレ?
あげく解放されませんでした、解放されてるかどうか確認をせよ
何なのコレ?
457はちみつ餃子 ◆8X2XSCHEME
2020/04/26(日) 21:11:50.20ID:Kc4H3V0/ >>455-456
事例としては
例1: 使い捨てスクリプト
その程度の管理で良い。
ガッと動かしてそのまま終わるので管理もクソもない。
例2: サービスの変更が多いウェブサービス
まずは早期に動かすことが大事。
細けぇことは後でプロファイラを見ながらなんとかする。
事例としては
例1: 使い捨てスクリプト
その程度の管理で良い。
ガッと動かしてそのまま終わるので管理もクソもない。
例2: サービスの変更が多いウェブサービス
まずは早期に動かすことが大事。
細けぇことは後でプロファイラを見ながらなんとかする。
458デフォルトの名無しさん
2020/04/26(日) 21:14:39.85ID:PBJtHpgo >自動化されてるんだから手を出しちゃダメ
ハアwwww?
コードで明示的にマークも出来ますが何かwwwwwwww
>あげく解放されませんでした、解放されてるかどうか確認をせよ
ハアwwwwwwwww?
>>456は不具合を発見してから不具合がないか確認するタイプ?wwwwwwwwwwww
ハアwwww?
コードで明示的にマークも出来ますが何かwwwwwwww
>あげく解放されませんでした、解放されてるかどうか確認をせよ
ハアwwwwwwwww?
>>456は不具合を発見してから不具合がないか確認するタイプ?wwwwwwwwwwww
459デフォルトの名無しさん
2020/04/26(日) 21:31:08.35ID:O/ywVmO1460デフォルトの名無しさん
2020/04/26(日) 21:38:26.82ID:O/ywVmO1 「資源の解放はお任せくださいっ!!(キリッ
「あのー循環参照が・・・
「メモリーだけです!!(汗
「資源じゃなかったんですか?
「そのくらい察して下さい!!(滝汗
「もういいです
「あのー循環参照が・・・
「メモリーだけです!!(汗
「資源じゃなかったんですか?
「そのくらい察して下さい!!(滝汗
「もういいです
461デフォルトの名無しさん
2020/04/26(日) 22:53:28.79ID:QPzhUi52 仕事でしゃーなしに使う言語あるいは
知ったかしたいアマチュアが使う言語、それがC++
知ったかしたいアマチュアが使う言語、それがC++
462デフォルトの名無しさん
2020/04/26(日) 23:02:01.07ID:L6Afs0I9 仕事で喜んで使う言語だな
c#とかjavaとかだと嫌になる
c#とかjavaとかだと嫌になる
>>462
java は、少なくとも昔の java は、厳しく抑制のきいた文法と豊富なクラスライブラリでいい感じだと思いますよ、文法は意味があっての簡素なほうが好みですね
c# は、クラスライブラリの全容を把握していないので、まだ評価にとりかかれないのですが、これからじっくり調べたいと思っています
java は、少なくとも昔の java は、厳しく抑制のきいた文法と豊富なクラスライブラリでいい感じだと思いますよ、文法は意味があっての簡素なほうが好みですね
c# は、クラスライブラリの全容を把握していないので、まだ評価にとりかかれないのですが、これからじっくり調べたいと思っています
464デフォルトの名無しさん
2020/04/27(月) 00:49:16.60ID:fjvRegs6 Javaは新しいCOBOLになってしまった
当初の理想は良かったと思うけどままならんもんだね
当初の理想は良かったと思うけどままならんもんだね
465デフォルトの名無しさん
2020/04/27(月) 07:25:21.81ID:8maROmCe >>461
シッタカにいつもマウント取られる水準のやつからは、そう見えるだろうな
シッタカにいつもマウント取られる水準のやつからは、そう見えるだろうな
466デフォルトの名無しさん
2020/04/27(月) 07:39:21.53ID:xj40wisa まともにコンパイルも通してないで知ったかしてるバカに言えることなんてないけどね。
467デフォルトの名無しさん
2020/04/27(月) 10:24:31.10ID:GkRU7UlF468デフォルトの名無しさん
2020/04/27(月) 10:53:01.86ID:8maROmCe469デフォルトの名無しさん
2020/04/27(月) 15:48:22.92ID:D/t5uqt1 なんで
long long abs(long long x)
なんだろうか
負の数の方が絶対値の大きい値が表せちゃうのに
long long abs(long long x)
なんだろうか
負の数の方が絶対値の大きい値が表せちゃうのに
470デフォルトの名無しさん
2020/04/27(月) 15:59:47.26ID:l27UEbbh 0x8000000000000000 代入してみろ
471デフォルトの名無しさん
2020/04/27(月) 16:00:23.33ID:8maROmCe long longでないとすると、何型が妥当だと思う?
472デフォルトの名無しさん
2020/04/27(月) 16:31:02.95ID:l27UEbbh unsigned long long じゃね
473デフォルトの名無しさん
2020/04/27(月) 16:32:36.82ID:CPqejn5Z >>465
このスレで知ったかの相手すると荒れるから、大抵中身の無いマウントカキコはスルーされてるんだが
このスレで知ったかの相手すると荒れるから、大抵中身の無いマウントカキコはスルーされてるんだが
474デフォルトの名無しさん
2020/04/27(月) 16:44:05.42ID:8maROmCe つまり、こういうことか
template <typename T>
auto abs(T val) -> enable_if_t<is_integral_v<T>, make_unsigned_t<T>>;
template <typename T>
auto abs(T val) -> enable_if_t<is_integral_v<T>, make_unsigned_t<T>>;
475デフォルトの名無しさん
2020/04/27(月) 17:10:02.87ID:GkRU7UlF singedとunsigned混在すんなってことだよ
c言語レベルの質問はc言語スレでやれ
というか語りつくされた話題だから適当にググれ
c言語レベルの質問はc言語スレでやれ
というか語りつくされた話題だから適当にググれ
476デフォルトの名無しさん
2020/04/27(月) 17:30:31.42ID:BED9nwFS 背伸びしたい無職が使う言語は
C++かHaskellと相場が決まっとる
C++かHaskellと相場が決まっとる
477デフォルトの名無しさん
2020/04/27(月) 18:01:51.48ID:BO0mpPru C++14(gcc)でUTF8の正規化をする場合、どんなやり方が良いとされているのかご教示ください。
C++ではやったことがないので初歩的なところからご教示いただけるとありがたいです。
・ICU以外の選択肢はあるのか?
・ICUを使う場合、直接APIを使うよりBoost.localeを使った方が良いのか?
C++ではやったことがないので初歩的なところからご教示いただけるとありがたいです。
・ICU以外の選択肢はあるのか?
・ICUを使う場合、直接APIを使うよりBoost.localeを使った方が良いのか?
478デフォルトの名無しさん
2020/04/27(月) 19:07:33.35ID:xj40wisa >>476
最近はrustも人気。
最近はrustも人気。
479デフォルトの名無しさん
2020/04/27(月) 20:41:43.99ID:GkRU7UlF >>477
文字コードスレできいたら?
icuで足りるんならicuでいいと思うけど
自分の経験ではicuのでかくて重いのが問題だったらから
必要な機能だけ自作したな
(unicodeがリリースしてるテストデータをパスさせた)
文字コードスレできいたら?
icuで足りるんならicuでいいと思うけど
自分の経験ではicuのでかくて重いのが問題だったらから
必要な機能だけ自作したな
(unicodeがリリースしてるテストデータをパスさせた)
480デフォルトの名無しさん
2020/04/27(月) 21:27:19.90ID:hGnxzjbK 集中治療室?
481デフォルトの名無しさん
2020/04/27(月) 22:52:07.04ID:mlDkfEpN だまれ>>476
スカトロ野郎
スカトロ野郎
482デフォルトの名無しさん
2020/04/27(月) 23:00:48.56ID:4DagN68Q 普通はc++だろ
javaとかc#とか環境整えるの面倒くさいじゃん
javaとかc#とか環境整えるの面倒くさいじゃん
483デフォルトの名無しさん
2020/04/28(火) 03:25:29.21ID:5RYVSkyg >>476
Cはかつて最大人気言語だった歴史があるのに対し、HaskelやRustはそうではない。
C++もCの人気を受け継いだ言語だし、処理速度が高速でメモリー使用量も少なく、
起動も速いし、Windows以外でもとても広いプラットフォームで簡単に動くのだから、
使うのは自然な流れだし、背伸びとかではない。
例えば、C#をAndroid/iOS/Linux/Macで動かすのは容易ではない。
Wasmで動かすにもネットからのダウンロード量が多くなり起動が遅くなる。
一方、C++ならWasmでも起動が速い。
Cはかつて最大人気言語だった歴史があるのに対し、HaskelやRustはそうではない。
C++もCの人気を受け継いだ言語だし、処理速度が高速でメモリー使用量も少なく、
起動も速いし、Windows以外でもとても広いプラットフォームで簡単に動くのだから、
使うのは自然な流れだし、背伸びとかではない。
例えば、C#をAndroid/iOS/Linux/Macで動かすのは容易ではない。
Wasmで動かすにもネットからのダウンロード量が多くなり起動が遅くなる。
一方、C++ならWasmでも起動が速い。
484デフォルトの名無しさん
2020/04/28(火) 03:31:09.13ID:5RYVSkyg >>483
C++を動かすのはOS以外に基本的に特殊なランタイムが要らない。
C#やJavaでは.NET環境やJVMが必要となる。
AndroidでもJNIを使えばC/C++は起動も速く動作速度もJava/Kotlin以上に軽快に動く。
同様にiOSでも、Swiftとリンクできるので同様。
逆にC#は、iOSやAndroidで動かすにはダウンロード時間や起動速度に問題があり、
動作速度にも desktop マシン以上に問題がある。
Androidだと、Java/Kotlinの仮想マシンの上に、.NETの仮想マシンを二重に載せる
形となるため、C/C++と比べれば、掛け算の形で遅くなってしまう。
C++を動かすのはOS以外に基本的に特殊なランタイムが要らない。
C#やJavaでは.NET環境やJVMが必要となる。
AndroidでもJNIを使えばC/C++は起動も速く動作速度もJava/Kotlin以上に軽快に動く。
同様にiOSでも、Swiftとリンクできるので同様。
逆にC#は、iOSやAndroidで動かすにはダウンロード時間や起動速度に問題があり、
動作速度にも desktop マシン以上に問題がある。
Androidだと、Java/Kotlinの仮想マシンの上に、.NETの仮想マシンを二重に載せる
形となるため、C/C++と比べれば、掛け算の形で遅くなってしまう。
485デフォルトの名無しさん
2020/04/28(火) 06:21:32.17ID:greKUeEf 例外やRTTIをイネーブルしてるとでかいスタティックリンクつくけどね
486デフォルトの名無しさん
2020/04/28(火) 08:31:29.78ID:QAhIr1h2 言うほどでかいか?
487デフォルトの名無しさん
2020/04/28(火) 10:12:31.46ID:hgakc7LF CならRAM16バイトのPIC10F200でも使える
488デフォルトの名無しさん
2020/04/28(火) 10:13:11.23ID:hgakc7LF C++も機能を絞れば非常に小さい
489デフォルトの名無しさん
2020/04/28(火) 11:07:35.26ID:greKUeEf >>486
ソースコードの見た目とバイナリのサイズがCと違いすぎって意味
ソースコードの見た目とバイナリのサイズがCと違いすぎって意味
490デフォルトの名無しさん
2020/04/28(火) 11:08:41.96ID:zAZN/f3s テンプレとかソース小さくするためにあるからな
491デフォルトの名無しさん
2020/04/28(火) 11:16:33.24ID:greKUeEf 俺>>485だよ?
492デフォルトの名無しさん
2020/04/28(火) 11:43:34.53ID:A6/2gkMb Arduinoで使ってること考えたら、十分使える。
RAM2KBしかない。
RAM2KBしかない。
493デフォルトの名無しさん
2020/04/28(火) 11:47:47.26ID:AaGQGXoS494デフォルトの名無しさん
2020/04/28(火) 12:21:03.57ID:greKUeEf >>493
libgccだったかな?
libgccだったかな?
495デフォルトの名無しさん
2020/04/28(火) 13:35:25.37ID:IyPBiCvR >>494
gcc のオプションに -static を加えればいいのでは?
gcc のオプションに -static を加えればいいのでは?
498デフォルトの名無しさん
2020/04/28(火) 18:57:57.67ID:greKUeEf >>497
意味わからん 何?
意味わからん 何?
>>498
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/Link-Options.html#Link-Options
-static
On systems that support dynamic linking, this overrides -pie and prevents linking with the shared libraries.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/Link-Options.html#Link-Options
-static
On systems that support dynamic linking, this overrides -pie and prevents linking with the shared libraries.
500はちみつ餃子 ◆8X2XSCHEME
2020/04/28(火) 19:15:02.93ID:jkGkDNpV501はちみつ餃子 ◆8X2XSCHEME
2020/04/28(火) 19:16:34.52ID:jkGkDNpV マップファイルを出力させてみれば実際に何がリンクされるかはわかるんちゃう?
試してないけど。
試してないけど。
502デフォルトの名無しさん
2020/04/28(火) 19:25:33.35ID:9sR0wNPf QZは頭が弱いからしょうがない
503デフォルトの名無しさん
2020/04/28(火) 19:32:38.39ID:AaGQGXoS libgccの大きさじゃなくてunwind用のハンドラコードの増加じゃないの?
(間違って別スレに書いてしまった)
(間違って別スレに書いてしまった)
504デフォルトの名無しさん
2020/04/29(水) 02:43:38.13ID:BrDWvzn9 >>503
RTTI の場合は、仮想テーブルと同様の場所に、実行時型情報へのリンクポインタが
書き込まれるようになる。
それがなかなか複雑な構造をしている。
RTTI情報も、ヘッダファイルの中に構造体が書いてあると、COMDAT形式で
全ての *.obj ファイルの中にいったん書きこまれることがある。
リンク段階で同じデータのsectionがある場合は、単一のsectionだけを残して
他は削除されてしまうが。
RTTI の場合は、仮想テーブルと同様の場所に、実行時型情報へのリンクポインタが
書き込まれるようになる。
それがなかなか複雑な構造をしている。
RTTI情報も、ヘッダファイルの中に構造体が書いてあると、COMDAT形式で
全ての *.obj ファイルの中にいったん書きこまれることがある。
リンク段階で同じデータのsectionがある場合は、単一のsectionだけを残して
他は削除されてしまうが。
505デフォルトの名無しさん
2020/04/29(水) 02:45:01.49ID:BrDWvzn9506デフォルトの名無しさん
2020/04/29(水) 03:00:07.88ID:s4ud4ToE >>484
mono、core、zamarin調べて出直してこい
mono、core、zamarin調べて出直してこい
507デフォルトの名無しさん
2020/04/29(水) 10:03:27.37ID:I9/54o5j enum class を1オリジンにするスタイルはどの程度使われていますか?
508デフォルトの名無しさん
2020/04/29(水) 10:59:38.40ID:I9/54o5j char8_tってどういう経緯で採択されたんですか?
Microsoftを利する提案が受け入れられるのは相当珍しいと思いますが。
Microsoftを利する提案が受け入れられるのは相当珍しいと思いますが。
509はちみつ餃子 ◆8X2XSCHEME
2020/04/29(水) 12:00:55.06ID:sxS/u8Yc510デフォルトの名無しさん
2020/04/29(水) 12:20:11.19ID:I9/54o5j その要望は昔からあるけど阻止してきたのに、なぜ解禁されたのか事情知りませんか?
511はちみつ餃子 ◆8X2XSCHEME
2020/04/29(水) 12:43:30.81ID:sxS/u8Yc >>510
江添亮のブログで関連する提案や議論が取り上げられているので順番に読んでみたらいいと思う。
https://cpplover.blogspot.com/search?q=char8_t
具体的にこれが理由と言えるひとつの理由があるわけではないけど、
やってみたらやっぱ要るわ……という雰囲気っぽいかな。
要するに文字列をナメてたんだろう。
江添亮のブログで関連する提案や議論が取り上げられているので順番に読んでみたらいいと思う。
https://cpplover.blogspot.com/search?q=char8_t
具体的にこれが理由と言えるひとつの理由があるわけではないけど、
やってみたらやっぱ要るわ……という雰囲気っぽいかな。
要するに文字列をナメてたんだろう。
512デフォルトの名無しさん
2020/04/29(水) 13:58:02.79ID:6qGxEOGB513デフォルトの名無しさん
2020/04/29(水) 14:13:57.87ID:j7Bsjnws charにutf8突っ込むだけでunicode対応できるとか考えるやつがようやく淘汰されてきてありがたい
514デフォルトの名無しさん
2020/04/29(水) 14:46:58.81ID:UddvUJZz そもそも「Microsoftを利する提案」てなんだよ
C++は別にアンチMSじゃないだろ
C++は別にアンチMSじゃないだろ
515デフォルトの名無しさん
2020/04/29(水) 14:58:22.63ID:fDjn2ZQ/ utf8は一文字が3バイトなこともある
516デフォルトの名無しさん
2020/04/29(水) 15:01:51.37ID:I9/54o5j std::size(u8"あいうえお" - 1)みたいな感じですかね。
517デフォルトの名無しさん
2020/04/29(水) 16:00:32.94ID:fokztjWx std::u8stringとかC++は規格に出すのが遅い
518デフォルトの名無しさん
2020/04/29(水) 16:10:17.68ID:I9/54o5j >>514
W3CもアンチMicrosoftではないのだけど、会員がIT業界の人たちなので、結局のところ、如何にしてMicrosoftを落とすか討論する場所になってました。
W3CもアンチMicrosoftではないのだけど、会員がIT業界の人たちなので、結局のところ、如何にしてMicrosoftを落とすか討論する場所になってました。
519デフォルトの名無しさん
2020/04/29(水) 16:22:55.14ID:T9sEu8SV520デフォルトの名無しさん
2020/04/29(水) 17:04:53.68ID:EKyVvulT521デフォルトの名無しさん
2020/04/29(水) 17:10:00.22ID:IQZPjtSj enum class とか、MS起源の機能なんていくらでもあるんだけどな
522デフォルトの名無しさん
2020/04/29(水) 18:31:43.41ID:mBdz0qQc523デフォルトの名無しさん
2020/04/29(水) 18:51:27.37ID:BrDWvzn9 >>522
うむ。関係ない。
うむ。関係ない。
524デフォルトの名無しさん
2020/04/29(水) 20:13:29.91ID:Ck1GLV1r525デフォルトの名無しさん
2020/04/29(水) 21:26:43.63ID:6qGxEOGB まあ書いてあることは概ね正しいので・・・
■ このスレッドは過去ログ倉庫に格納されています
