1 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:20:06.25 ID:o3PNwIlC0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい。 !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part134 mevius.5ch.net/test/read.cgi/tech/1516406742/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
411 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 10:58:06.07 ID:COWnkDW0d.net] >>400 じゃあ俺も、お前はここに二度と来ないでに全財産を福島と熊本に寄付した上で家族もろとも自殺するべきであると意見するわ こういう意見を書いてあるという事実に反論できなければお前の負けな
412 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 12:28:04.63 ID:O6TOHWbPM.net] >>401 お前が何を言っても>>339 に書いた「無視」と言う文言を理解できなかった>>346 がいたと言う事実は変わらない しかも誤魔化すために話そらそうと必死な>>353 がいた事実も変わらない >>402 別に意見を言うのはいいんじゃね? それに何の意味があるのか知らんけど w
413 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 12:30:27.46 ID:Mg+ERRyAd.net] いつまでやるの?
414 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 12:42:19.37 ID:COWnkDW0d.net] C/C++の規格はgets()とかいうアホな使い方しか出来ないアホ関数を30年も削除出来なかったくらいアホに気長に付き合う規格なんだよ 広く使われ続ける規格の宿命としてその方針は変えられない だからお前の言うようなアホを無視して切り捨てるという選択肢が採用されることはないという事でこの話終わりな
415 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 14:52:44.93 ID:mlVlMuXl0.net] >>403 もう一度言う 提示してねえだろ、おまえは無視つったんだよ 人をアホよばわりしようと焦るあまり 論議そのものを粗末に扱ったのが おまえの運の尽きだ そこでどんなに暴れようが おまえは何も論じていない よって論に反駁してもらえることもない ましてや事実に反駁というシュールなことをする者もいない
416 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 16:36:21.86 ID:j5Ya8YmN0.net] アホではないから残しているのでは
417 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 18:27:57.39 ID:O6TOHWbPM.net] >>405 マジで言ってるの? gets() なんてアホには使えない関数の典型だろ バッファーオーバーフローはプログラマーの責任 って言う言語だぞ w
418 名前:850 mailto:sage [2018/04/27(金) 18:31:51.94 ID:Q1GjkYeyr.net] >>376 言葉尻を捕まえて悪いが、クラスや関数を作ることをそう大仰に捕らえることはない。 単純な機能のクラスや関数など幾らでもある。
419 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 18:33:12.92 ID:O6TOHWbPM.net] >>406 >>351 を読み直せ 無視するのは誰で誰を無視するのかを答えてみ まあ恥ずかしすぎて答えられないだろうからまた明後日の話に逸らそうとするんだろうけど w
420 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 19:01:47.01 ID:mlVlMuXl0.net] >>410 読み直して欲しいのかよ お願いしろよ 読み直してやるかも知んねーからw
421 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 20:31:10.54 ID:nldsEJyI0.net] はい、基地害乙
422 名前:片山博文MZ mailto:sage [2018/04/27(金) 20:33:29.96 ID:HF3+Vuoyd.net] りかいできないならからんでくるなよダブリュー 「アホなりようしゃはあいてにしない(イコールむしする)」っていうしようを「ていじ」してるってはなしだ、ボケ
423 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 20:46:16.80 ID:mctUhDKod.net] よくわからんが、糞コテの自演てこと?
424 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 23:50:18.78 ID:mp1hh4hd0.net] C/C++は池沼お断りの言語なんだから、このスレも同じノリでいいと思うぞ。 指摘しても理解できないのは、日本語が出来ない=池沼だから。 慣れる慣れない以前の問題だ。
425 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 06:20:59.27 ID:BHnoJcFn0.net] ていうか#pragma once規格化不能論者が言い立てる不可能ケースは (1) #ifdef〜#endifインクル〜ドガ〜ドでも曖昧さが残り処理系依存になるケース (2) #pragma onceで自動的にガード条件を設定する際の困難(#ifdef 〜の記号をうまい具合に考え出すことに相当 (3) #ifdef〜#endifインクル〜ドガ〜ドにおける既存のアクロバティックな使い方への対応(>>361 (4) #pragma onceで想定されるアクロバティックな使い方の解釈(>>321 のn種類しかない (1)は#pragma once固有の問題ではないから、#pragma once規格化の障害とは言えない ハードリンクとかの件でここまで費やされた長い紙数はムダすぐる… (2)と(3)は、#pragma onceが力量不足ならそのケースだけいつでも#ifdef〜#endifインクル〜ドガ〜ドに戻ることができる プリプロセッサの基本特性まで変えようというのではないのだから… (4)はエラーにすればよい #pragma onceの解釈を単純な#ifdef〜#endifインクル〜ドガ〜ドの置き換えと限定するなら可能なはずや いままで20数年にわたって規格化委員会で話題に上りながら規格化されないのは、 この件の抜本的な技術である「モジュール」の規格化が控えていると全員が錯誤していること、これにつきるだろうJK [] [ここ壊れてます]
427 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 06:57:19.27 ID:ibkTuaSK0.net] >>416 とりあえず、 #pragma onceの仕様を文章にしてみて そんなに簡単じゃないから
428 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 07:52:46.94 ID:BHnoJcFn0.net] ■ #pragma onceの俺様仕様 (ヘッダファイルの集合の規定) 1. インクルードされるヘッダファイルを#pragma once付きとそれ以外とする。 ただし、次のいずれかに該当する場合はエラーとする(ヘッダファイルに含めない) (1) #pragma onceがコメントを除くファイル先頭に現れた場合 (2) #pragma onceがコメントを除くファイル先頭に現れ、かつ ファイル内の#if〜#endifの入れ子がファイル内で完結しない (ヘッダファイルの識別) 2. #pragma once付きのヘッダファイル同士は、ファイル名で識別する。(ディレクトリパスは無視) (ヘッダファイルの展開) 3. #pragma once付きのヘッダファイルのうち、上記2の規則により同一と判定されるファイルは 単一のコンパイルの中で、2回目以降の展開を無視する。 4. #pragma once付きでないヘッダファイルの展開は現行どおりとする。 いじょ
429 名前:デフォルトの名無しさん [2018/04/28(土) 07:55:01.29 .net] >>418 #pragma onceってファイル先頭に置くものだと思ってた ファイル末尾とかにおけばいいの?
430 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 07:56:19.92 ID:zm4OWgENM.net] ソフトウェアが巨大化してくると、サブモジュールが各々同一のSDKを抱えてるなんてことがある。 複数のサブモジュールを読み込んでるソースコードは間接的に同一ヘッダを読み込む可能性があるが、 cvs等が異なるidを埋め込んでいたり、それぞれ微妙にバージョンが異なっていたり、エンコーディングや改行コードが異なっていたりする場合、 Includeガードならビルドできるが、pragma onceだと同一ヘッダを異なるファイルと認識してしまい、エラーになってしまったので、サブモジュールを全て自前で修正する羽目になった。 なんてことがあるかもしれない。 結局ヒューリスティックな実装しかないんでないの?
431 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 07:57:50.65 ID:BHnoJcFn0.net] 訂正; 誤: (1) #pragma onceがコメントを除くファイル先頭に現れた場合 正: (1) #pragma onceがコメントを除くファイル先頭以外に現れた場合
432 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 07:58:55.91 ID:BHnoJcFn0.net] >>420 >>418 の仕様によるヘッダファイルの展開のどこにヒューリスティック要素があるのかkwsk、
433 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 08:04:07.12 ID:zm4OWgENM.net] >>418 >ファイル名で識別 過去遺産をすっぱり切り捨てる斬新な発想に目から鱗
434 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 08:05:18.62 ID:BHnoJcFn0.net] >>423 藻前は>>418 の仕様の項番4を理解していない 出直せ
435 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 08:15:15.14 ID:zm4OWgENM.net] 今後ヘッダファイル名にはドメイン名を頭につけなきゃいけないね。 メアドでもいいかな?
436 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 08:20:58.21 ID:amQJLuCm0.net] >>417 適当な処理系の言語リファレンス見ればいいだけ そんなに難しくはないぞ
437 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 08:24:01.11 ID:WRqkde3l0.net] >>422 420が提起した問題に答えろ kwskはそれからだ
438 名前:デフォルトの名無しさん [2018/04/28(土) 08:33:55.15 .net] >>427 是非は置いといて、ファイル名で識別するって書いてあるじゃん 文盲なの?
439 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:13:26.88 ID:clK1o5V+0.net] つまりfooSDK/interface.hとbarSDK/interface.hは同一として判定するんだな たいへんだー
440 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:22
] [ここ壊れてます]
441 名前::50.78 ID:WRqkde3l0.net mailto: 結論を急ぐあまり考察が浅くなりすぎだな [] [ここ壊れてます]
442 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:23:37.16 ID:ibkTuaSK0.net] #pragma onceの前に改行があったらエラーですかwww
443 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:27:57.75 ID:amQJLuCm0.net] >>420 それ単に管理がなってないだけだろ どのバージョンのヘッダーを読み込むかを管理できてないとか怖すぎる
444 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:34:33.18 ID:WRqkde3l0.net] >>432 どう管理しろと? 混用しているライブラリに偶然同じファイル名があって どちらもインクルードガードされているということを 「管理」で回避できるのか?
445 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:42:57.08 ID:zm4OWgENM.net] >>432 えー、cvs keywordはどうするのー? サブモジュールを格納してたリポジトリ毎に値が異なるよ? 自動的に改行コードを修正してくれるリポジトリの場合はー?
446 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:45:12.10 ID:ibkTuaSK0.net] まずは世の中のプリプロセッサのpragma onceの仕様がどうなっているかを調べるべきかと
447 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 09:54:13.99 ID:EXYGb8MJ0.net] 具体的な話になったら一気にレベル下がったなw
448 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:21:03.59 ID:amQJLuCm0.net] >>433 話の流れを理解せずに無駄に絡んでくるなよ... インクルードガードならとりあえずビルドできるって言う話だぞ >>434 同一のSDKなんだから同一のものを指すようにすればいいだけだろ
449 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:24:05.76 ID:ibkTuaSK0.net] 目的は インクルードのループを防ぎたいのと 同じ定義を複数回行うことでエラーになるのを防ぎたい ってことだよな これをインテリジェントに行ってくれるのが理想 インテリジェントな物を仕様にするのは難しいし、 時代が進めばインテリジェント具合も変わる >>418 みたいなあまりにショボい仕様だと 後々不満が出ることになる
450 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:28:01.67 ID:WRqkde3l0.net] >>437 答えになってないぞ 今 #pragma once について話しているよな インクルードガードを #pragma once でやっていたらどうなんだ
451 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:28:57.76 ID:BHnoJcFn0.net] >>429 >>434 現行のヘッダファイルでうまく行っているのならそのままでええ(>>418 項番4はそのためにある そうではなくて、もしも(例えば)マイクロソフトのVisual C++の#pragma onceを使って書かれた過去の遺産の尊重が大事なら そのときは>>418 の方の#pragma onceを#pragma once2とかに代えれば良いが そりゃー(例えば)マイクロソフトのVisual C++の#pragma onceが先行して規格になった後の話なので今は無視 >>435 >417からの流れと考え合わせるに、 「僕ちゃんの考えた理想の#pragma onceじゃないと嫌なの!!!>418のクソ単純な仕様は正しくとも認められん!!!」ってことですかそうですか… なお>>431 の指摘は評価する >>436 抽象的な言い回しで無意味に高尚な議論に見せかけている連中の方が多数派 空っぽなのに…
452 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:29:34.95 ID:ibkTuaSK0.net] 当然互換性の問題もある 今まで動いていたものが正しく動かなくなるのであれば支持されない だから>>435 も非常に重要
453 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:33:35.22 ID:BHnoJcFn0.net] >>441 時間差だったかもしれんが>>440 の最初のパラグラフ参照 存在しない規格との互換性の問題を喚かないでいただきたい、というのはあるが 回避策も示しているのだからオール無問題
454 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:33:47.48 ID:ibkTuaSK0.net] >>429 の例で 2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな 中身が全く同じであれば防ぎたいし 全く別の定義であればそれそれぞれをインクルードしたい
455 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:35:03.59 ID:ibkTuaSK0.net] >>442 #pragma onceの仕様はVisual C++しか実装してないと思ってる?
456 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:38:47.00 ID:BHnoJcFn0.net] >>443 >>444 >2重インクルードを防ぎたい場合とそれぞれ別にインクルードしたい場合があるってのは書かなくてもわかるよな ああ>>443 の脳内にはそういう要求もあるんですねわかります その場合は>>418 項番4でドゾー 藻前ら>>418 の単純さをバカにするが藻前らの論理展開のアレっぷりも相当なもんやぞ…
457 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:42:05.24 ID:ibkTuaSK0.net] いずれにしろ>>418 みたいなチープな仕様じゃ誰にも支持されない
458 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 10:45:00.58 ID:WRqkde3l0.net] ツッコミ殺到でボコボコなのに勝利宣言してやがるな つっこんだ人たち(ここのほぼ全員)にバレバレなのに滑稽な
459 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:10:27.31 ID:ueAKslGb0.net] >>418 ,421はミニマムの仕様を提示しただけで、つまり、 この仕様で問題ない場合は #pragma once で手抜きが出来て、 無理な場合は従来通りインクルードガード使えってことだろ。 俺はありだと思うぜ。仕様ってのはこういう割り切り方をしないと決まらない。 C++のラムダなんて後付で仕様を拡張して行っているし。(このやり方がいいとは思わないが) ただ、この仕様だと現行の #pragma once よりも割り切っているのがイマイチで、 「今」この仕様では却下されるだろう。 「#pragma once が全くない世界」なら、とりあえずここから出発するのもありだっただろう。 現行の #pragma once は常識的に考えて、 ・ファイル実体が同じ場合(ハードリンク/シンボリックリンク)は対応可能 ・コピーの場合(ローカルに xxx.h を tmp_xxx.h にしてデバッグ出力を改変したり)には対応不能 だろう。だから使用条件としては、 ・全ファイルがローカルファイルシステム上にあり、ヘッダファイルの改変は行わない であり、普通に個人レベルで開発する場合はこれで全く問題ないし、妥当だ。 会社で10-20人レベルで開発する場合、どのみちルールを子細に決めることになるし、 そういう場合は従来のインクルードガードでやれ、という割り切りも妥当だよ。
460 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:11:35.35 ID:ueAKslGb0.net] なお俺が推す仕様は、 ・#pragma once のファイル内では複数定義のエラーを無視する というものだ。従って、 ・現行の#pragma once とは違い、対象ファイルは必ず「ファイルとしては」「読み込まれる」 (これは現行のインクルードガードとも同じ) ・定義されている物のシグネチャが既に存在するものと全く同一だった場合、無視する。 ・シグネチャが異なっている場合、普通に読み込む(コンパイル対象とする) (勝手にデバッグ関数を追加されていた場合、その関数だけはコンパイルされる) ・#pragma once のファイルを全部パースし終わった際、「全部重複」「全部新規」ではなかった場合、警告を出す。 (正しく使えば「全部重複」「全部新規」のどちらかになる。 改変《追加》した場合は「一部新規」となり、警告にする。「一部欠落」は検知しない。) というものだ。 この場合、要するに「読み込んで同じだったら無視」なので、 #ifdef 内等、かなりアクロバティックに使われても、問題なく、使用者の直感通りに動作する。 改行の追加、コメント変更等は全く問題ない。 ただし常に全部のファイルを読み込み、初段階のパースは行うことになるので、 現行の #pragma once やインクルードガードよりは速度は劣る。 とはいえ、今更ここが問題になる時代ではないし、問題になるようならインクルードガードを使えと割り切る。 つまり、面倒なら #include を使わずに、全部 #pragma once にも出来る、というもので、 実際これで問題無いと思うんだがな。
461 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:15:31.75 ID:aIENMcPWd.net] もう書かなくて良いよ アホだってこはみんなわかったから
462 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:18:31.52 ID:aIENMcPWd.net] ヒント インクルードループ
463 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 11:22:35.75 ID:aIENMcPWd.net] インクルードのネストがn段 それぞれの段、m個のインクルードファイルからm個インクルードしてるとします 何パス必要でしょう
464 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:14:39.04 ID:wZlaoeXA0.net] >(ディレクトリパスは無視) 現行の#pragma onceでこんな実装になってる処理系あるかなぁ
465 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:22:28.92 ID:amQJLuCm0.net] >>439 日本語で桶
466 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:24:23.32 ID:amQJLuCm0.net] >>438 , >>446 > >>418 みたいなあまりにショボい仕様だと > 後々不満が出ることになる でも具体的には指摘できない ってか w
467 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:26:40.87 ID:aIENMcPWd.net] 具体的にたくさんあがってるのが見えないのかな
468 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:51:19.85 ID:NasUyYi90.net] プリプロセッサが諸悪の根源
469 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 12:51:48.61 ID:NasUyYi90.net] #define多いと読む気しない
470 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 13:09:32.49 ID:amQJLuCm0.net] >>456 レス番も引用もできないクズ乙 w
471 名前:デフォルトの名無しさん [2018/04/28(土) 14:18:44.28 ID:0IOpQOT30.net] static変数(クラスのインスタンス)がプログラム実行時にそのメンバ関数呼び出し時にその中で、 newをすると既存のヒープ領域を破壊することはありますか? どうもこのように解釈できる現象が起きているようなのですが、調べても分からずアドバイスを頂ければ幸いです。 環境はMacのHighSierra、コンパイラはbrewから持ってきたLLVMです。
472 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:33:32.77 ID:ueAKslGb0.net] >>460 99%以上の確率であなたのバグです。 1行目の意味はよく分かりませんが。
473 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:51:34.89 ID:ueAKslGb0.net] ああすまん、何となく1行目の意味は分かった。 ・クラスインスタンスをstatic変数に入れ、そのメソッドを呼んだ 事をそう表現したのかな? だったらはっきり言ってstatic云々関係ない。 GCなんて無いから「statc変数に入れたら忘れてGCされてしまう」みたいなことはそもそも無い。 ヒープを壊しているのはユーザーです。つーか、ランタイムもないし。 ガチでコンパイラのバグだと思っているのなら、 どのみち再現コード(その場合は20行程度か)を作るしかない。 その過程で君のバグだと気づけるだろうさ。 ただこのように「下から」デバッグをするのは時間がかかるから、俺は嫌いだけど、 君がそう思うのならやるしかない。 C/C++は広く長く使われて来ている言語だから、 現在もバリバリに使われているコンパイラなら、この辺の基本的な部分にバグは無いと思うよ。 static変数に確保するのはマイナーかもしれないが、滅多にやらないってほどではないし、 そもそも上記の通り、コンパイラにとって危険のある(バグに命中する可能性のある)使い方でもない。
474 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:59:13.74 ID:9z8isRDe0.net] >>460 破壊って何?
475 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:20:06.35 ID:aIENMcPWd.net] ふつうに、 クラスのインスタンスがstatic宣言と読んだけだ static MyClass a; スコープローカルかファイルローカルかはわからん
476 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:29:35.84 ID:ueAKslGb0.net] >>450 >>464 日本語でおk お前は半島に帰れ >>452 それでお前は何パスだと思うのさ? 予言してやる。お前は言えない。 なぜならお前は馬鹿であり、それがばれるのが怖いから。
477 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:46:24.07 ID:aIENMcPWd.net] おれは数学の専門家だぞ わからないわけがない
478 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 17:46:53.04 ID:aIENMcPWd.net] なぜ問題を出したのか考えてみ
479 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 18:39:11.84 ID:ueAKslGb0.net] ひとまず俺の一つ目の予言は的中だな。 次に行こう。 >>467 ID:aIENMcPWd お前の日本語の間違いをすべて訂正してみろ。 2つ目の予言をする。お前は言えない。 なぜならお前はゴキブリ韓国人であり、間違いを認識できていないから。
480 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 02:23:46.17 ID:UY96NiMha.net] C++でプラットフォームに依存しない音楽再生ライブラリってある?特にlinuxで使いたいんだけど。 mpg123とかいうのもみてみたんだけどプログラムに組み込むやり方が分からない
481 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 02:25:23.22 ID:kTR2ZRC/0.net] MIDAS
482 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 07:28:51.71 ID:riHNUW7H0.net] Gstreamer
483 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 10:01:20.67 ID:4Txko8z40.net] 質問ですが Q1. 浮動小数点型について表現しえる最小の値(負の値のうちの絶対値が最大のやつ)を取得する 環境非依存なやり方はどうすれば良いの? -std::numeric_limits<double>::max()とか -DBL_MAX でおk? Q2. テンプレートを型引数が整数型と浮動小数点型で分けたいんですが 同じ名前のテンプレート名のまま、テンプレートの特殊化的な簡単に済ませる方法は無い?
484 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 10:55:07.91 ID:6B047Ccs0.net] >Q2 template <typename T, bool = std::is_floating_point<T>::value> struct hoge {}; template <typename T> struct hoge<T, true> {};
485 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 11:05:23.85 ID:iHQcqnOH0.net] >>472 >Q2. こういう事? https://ideone.com/oWzlMP
486 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 13:22:08.35 ID:WuAwAiPA0.net] >>472 std::numeric_limits<double>::lowest()
487 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 13:56:48.76 ID:4Txko8z40.net] まりがとうございます >>473 >>475 すばらっし >>474 言葉足らずでスマンカッタorz 具体的型名で特殊化する普通の特殊化ではfloatとdoubleのそれぞれについて特殊化した定義を与えねばならないので >>473 みたいなやつを求めていたのです!ヽ(>∀<)ノ!!!111!1!
488 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 15:24:36.24 ID:AQKaesvCd.net] たまにはlong doubleも思い出してあげてください
489 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 23:11:41.90 ID:xhvNrk1GM.net] Boost.Optionalを使う際に、 対象クラスが自分自身の有効無効を変更できるようにしようとしてみたところ、 宣言時に宣言対象を引数にとって初期化できることに気づきました。 変数の引数に変数自身を使うのは仕様的にありなのでしょうか? ttps://wandbox.org/permlink/YLKYol7KdEOhpyGU
490 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 23:32:18.45 ID:9aMn2TSu0.net] ポインタか参照なら問題ない 中身は使えない
491 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:40:40.03 ID:dOOCYV+Z0.net] CObject obj; for(i=0; i<N; i++) { obj = new CObject(); ・・・(処理)・・・ } ↑みたいにdeleteせずにnew演算子でクラスオブジェクトを割り振り続けるプログラムってお行儀悪い? CObject obj; for(i=0; i<N; i++) { obj = new CObject(); ・・・(処理)・・・ delete(obj); } ↑こういうふうにすべき? 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
492 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:49:10.85 ID:+P0DkpYu0.net] unique_ptr使うべき
493 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:54:52.50 ID:2ADD+YWD0.net] 今時newなんかを自分で書いてることに疑問を持ったほうがいい
494 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 23:55:37.66 ID:b3AAvo5J0.net] >>480 お行儀の次元の話じゃない
495 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:01:31.48 ID:LLl+2Gg10.net] 手っ取り早く動かしたいその場限りのコードならそういうことをやることもある くらいかな
496 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:09:49.83 ID:HN9ze8O60.net] ビンラディン並みのテロリストだな
497 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:09:55.64 ID:MK7npuGj0.net] そんなにお行儀悪いんでつか(´;ω;`)・・・
498 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 00:43:03.85 ID:Ve
] [ここ壊れてます]
499 名前:qNn1690.net mailto: そういうのやりたいならJavaやC#やれ [] [ここ壊れてます]
500 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:21:31.16 ID:9riosu0F0.net] ポインタじゃないものにnewしたもの格納できるとでも思っているのかジャバグラマ上がりのトーシロー
501 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:32:41.73 ID:G9KSYPOz0.net] なんでdeleteしなくていいと思ったんや
502 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 01:39:46.98 ID:HN9ze8O60.net] 釣りだと思う
503 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 03:44:38.96 ID:MK7npuGj0.net] deleteしてからnewすることにします・・・ >>488 こうでしたorz CObject* obj;
504 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 06:00:07.99 ID:3K4Hzh4Z0.net] >>480 C++的には for(i=0; i<N; i++) { CObject obj; ・・・(処理)・・・ } でいいんじゃね
505 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 10:02:54.88 ID:EfCiDMro0.net] 大規模なコードで大量にオブジェクト生成するならアリだと思うけど その場合もnewしたものをdeleteするための仕組みは必須だしね 追跡できなくなる、もしくは自分で自分を破棄する仕組みも無いようではダメ
506 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:01:41.50 ID:lsKTgXIy0.net] ライブラリに分ける利点ってなんですかね
507 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 14:44:29.23 ID:MK7npuGj0.net] >>482 クラスのメンバ変数に他のクラスインスタンスを召喚するときとか コンストラクタでnewしてやらないといけないと思うの
508 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 14:47:38.93 ID:G9KSYPOz0.net] >>494 複数のプロジェクトで使いまわせる >>495 スマポ(かコンテナ)で大体のnewは回避できる そのケースも回避できる
509 名前:デフォルトの名無しさん [2018/05/02(水) 15:02:47.22 .net] >>495 別にnewしなくてもよくね? なんかサンプル出してみ? new無くしてやっから
510 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:18:42.29 ID:MK7npuGj0.net] >>497 class CTest { CFoo cfoo; void CTest() { cfoo = new CFoo(); } }; こんなんとかどうでしょう
511 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 16:23:28.41 ID:BwUG32HZa.net] >>498 class CTest { CFoo cfoo; void CTest(): cfoo() { } }; メンバ初期化子知らんのか