- 1 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:56:53.03 ID:uFDqtnkl.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part146 https://mevius.5ch.net/test/read.cgi/tech/1573094136/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 ↑え?だってお前、普通ダイナミックリンクするだろ? "ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
- 220 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 09:59:58.48 ID:g8OSapKt.net]
- 俺ならソースにdgemm_みたいなのがあるのは嫌だから
#if __has_include(<mkl_blas.h>) #include<mkl_blas.h> #else #define dgemm dgemm_ extern "C" void dgemm_(省略); #endif ってやると思う
- 221 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 12:48:26.98 ID:JaW6uvCT.net]
- マクロが嫌ならinline関数にすればいいんじゃね
- 222 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 20:04:38.92 ID:2yY0psIJ.net]
- C++で次々に追加される無駄機能は
Cをしっかり理解していれば同等の機能を実装するのは造作もないものが多い
- 223 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 20:05:36.02 ID:Age3j7t+.net]
- では具体例お願いします
- 224 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 20:35:35.36 ID:+J7i572i.net]
- void*が出てくる時点で論外なのでよろしく
- 225 名前:蟻人間 mailto:sage [2020/01/12(日) 20:41:55.23 ID:26db5mti.net]
- #define my_static_assert(cond, msg) typedef char my_static_assert_failed[(cond) ? 1 : -1]
- 226 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 20:59:55.77 ID:Svv4a/Ag.net]
- Cはマクロの使い方次第で出来ることが深まるんだよな
ただC++はマクロ使わない方向で進化してるからな
- 227 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:09:19.71 ID:gA+rg5vj.net]
- >>212
下手なことするよりその書き方のが良い。個人的には214の方のが好きだが大して変わらん。
- 228 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:35:06.84 ID:TRbEu5Zq.net]
- いざというときも最悪Cならコンパイラを自作できるが
- 229 名前:C++はちょっと… []
- [ここ壊れてます]
- 230 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:56:32.12 ID:Svv4a/Ag.net]
- いやいや
gccとかC++だし
- 231 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 22:39:39.23 ID:MD4l5gjt.net]
- うちの会社C++03なんだけど・・・
- 232 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 22:51:11.80 ID:Age3j7t+.net]
- それが妥当かどうかは業務による
- 233 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 01:41:11 ID:rQk6tfo+.net]
- おとなしく頭の良い奴に従っとけ
自分が優秀だと思い込んでいる精神異常者の諸君
- 234 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 01:58:06 ID:xcD2sz0v.net]
- 頭のいい奴は総じてc++はカスだと言っとるぞ。
- 235 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 02:05:13 ID:Px4xDI4Q.net]
- 増えていく機能が軒並み
プログラミング始めたてのやつが持つ不満を具現化したようなものばかりだ 慣れていくとCがそうである理由がわかってきて、いらなくなっていく おおかた頭のいい奴が新規で入ってきて、慣れてないくせに良かれと思って追加してるんだろう
- 236 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 02:15:09 ID:8CXSeWtZ.net]
- 例を教えてくれ。
- 237 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 03:56:13.32 ID:rQk6tfo+.net]
- 頭の悪い奴向けの機能なんだが
- 238 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 06:52:04.51 ID:zZXHCgLl.net]
- >>216 >>228
具体例早くしてくれ 抽象論では話にならん
- 239 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:16:12.93 ID:j6Sgy/j5.net]
- C++コンパイラとC++のライブラリはC言語でも書けるから
当たらずしも遠からずだと思う
- 240 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:25:57.13 ID:a0NWv3WS.net]
- 全くCで書かれてないコンパイラってあるの?
- 241 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:25:34.29 ID:pIGOCTOQ.net]
- Cでテンプレート対応できるの?
- 242 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:30:00.85 ID:+nJPsH/6.net]
- >>228
C++は大人数で開発するための言語なんだからてめー個人がいるかいらないかなんて関係ねーんだわ
- 243 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:36:38.68 ID:+nJPsH/6.net]
- チームでの開発を安全に進めるための機能なんて熟練者が書く分にはそりゃいらんだろ
で?
- 244 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 12:52:54.65 ID:A/MByXKy.net]
- まあアセンブラさえあれば他に必要ないし
でもそこそこ規模大きいプロジェクトはc++多いよね 反例にlinuxはあるけど
- 245 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:04:44.90 ID:xcD2sz0v.net]
- windowsでさえc++なんか使わなけりゃよかったいうとるぞ。
つまり低レイヤー触るのに向いてるようでそうでもないってのがc++なんだよ。
- 246 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:20:13.66 ID:j6Sgy/j5.net]
- リーナスは低レベルな人やからな
- 247 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:20:44.02 ID:FqpttVgU.net]
- だから?
- 248 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:54:55.25 ID:/BeY0uog.net]
- >>233
Sun/OracleのJavaのコンパイラ javac は Java 自身で書かれている。 IBM製のJavaコンパイラ ecj も同じく。
- 249 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:00:48.10 ID:FqpttVgU.net]
- JVMもJavaで書いてみせろ
- 250 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:44:05.72 ID:vq82NN4B.net]
- 皆さんが使用されているエディタを教えてください....🙇♀
- 251 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:45:43.26 ID:jU0I703o.net]
- 自作
- 252 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:45:56.78 ID:5GjUS2iX.net]
- メモ帳
- 253 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:46:58.98 ID:vq82NN4B.net]
- あ、すみません僕は今はatomを使っています
自作のエディタを使ってらっしゃる方なんているんですね。。。
- 254 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 06:11:49.55 ID:J0UMnVjO.net]
- emacs
- 255 名前:デフォルトの名無しさん [2020/01/14(火) 13:29:05.29 ID:PBX58Pvh.net]
- 某板金社製
- 256 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 16:11:50.76 ID:gkNCY9ap.net]
- ↓のコードはコンパイルが通るのですが、func(1)ではなく、func<int32_t>(1)のようにしなければいけないと思っていたんですが、そうではないんですか?
これはコンパイラが勝手にTの型を推測してくれているのでしょうか? #include <iostream> template<class T> void func(T value) { std::cout << value << std::endl; } int main() { func(1); return 0; }
- 257 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 16:13:46.64 ID:MAaOflfD.net]
- 俺は自ら望んでなったC++使いだが
リーナスの主張には何ら文句はない 俺も好かんところがいくつかあって我慢しているが 他の人がキレるのを否定はしない
- 258 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 19:00:56.35 ID:jdAaUvyI.net]
- >>249
intに推論されてるね。 関数は推論してくれる。
- 259 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 19:47:23.47 ID:gkNCY9ap.net]
- >>251
そうなんですか ありがとうございました
- 260 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 19:55:58.10 ID:MAaOflfD.net]
- C++17からはクラスも推定するようになったから気をつけろな
- 261 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:10:13.46 ID:3eaorBLU.net]
- 地獄になるのが目に見えるわ。
- 262 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:20:51.77 ID:J0UMnVjO.net]
- >>249
>>251 もう少し正確に言うと関数の引数の型については推論してくれる。 戻り値については推論してくれないから<>で型を指定する必要がある。 template<typename T> T func(double v){ return static_cast<T>(v); } int main(){ // int pi = func(3.14); // エラー int pi = func<int>(3.14); return 0; }
- 263 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 23:30:18 ID:gkNCY9ap.net]
- >>253,255
なるほど! ありがとうございます
- 264 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 00:35:48 ID:7a3J15MS.net]
- >>256
いえいえ
- 265 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 08:07:26.85 ID:Af26ZTs6.net]
- >>257
楽しい?
- 266 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 01:26:49.29 ID:Ue561N6A.net]
- C#使ってきたわい、C++入門するにあたって何から手を付けたらいいか分からない
江添の入門本読んだらええの?
- 267 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 04:14:44 ID:SACm472n.net]
- +を重ね合わせないでずらして書くと#じゃなくて++になるやろ
つまりそういうことや
- 268 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 06:13:59.73 ID:iXD/XJ1o.net]
- あんなカス本読むならビャーネの本とeffective系統を何冊か読んだ方がよっぽど為になる。
- 269 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 08:12:06.71 ID:+e0TuAjq.net]
- 俺も自分の経験からは禿の本をオススメすることになる
- 270 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 18:58:35 ID:aiRikJgB.net]
- C++においてハゲとは神を意味するからな
- 271 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 20:10:19 ID:5A9213qe.net]
- また髪の話ししてる
- 272 名前:デフォルトの名無しさん [2020/01/17(金) 02:03:14 ID:nV1+qdjp.net]
- C++でウィンドウ関係の処理を組もうと思っているのですが、
最近だとMFCではなく.Net Framework を利用するのでしょうか?
- 273 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 02:20:28 ID:oPB0sz0H.net]
- いいえ
- 274 名前:デフォルトの名無しさん [2020/01/17(金) 02:26:05 ID:gAZZjojh.net]
- WebGL
- 275 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 06:22:56.76 ID:BtsrcJh0.net]
- Win32APIが主流ですよ
- 276 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 07:24:00.72 ID:sP/gsAG3.net]
- >>265
MFC抜きでWin32APIだけでコード書くことがあるけど正直無駄な苦痛を感じるよ MFCもダサいとこあるけどMFCでできることと同じ内容のコードを書いてると泣けてくる
- 277 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:02:37.47 ID:6PrSA6bz.net]
- WTLってどうなの?
- 278 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:03:39.75 ID:+NTDhbdd.net]
- 純粋仮想関数の=0の右辺って定数式なんでしたっけ
- 279 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:55:06 ID:9u9GYVKv.net]
- 0じゃないか?
- 280 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:17:21 ID:r0ibn4Bf.net]
- オブジェクトを明示的に破棄する方法ってある?
自分で new したなら delete すれば良いと思うが、STL コンテナ等の場合はどうすれば良いかという質問です。 例えば巨大な vector を作って何らかの作業をした後、もうその vector は用無しでメモリがもったいないからスコープを抜けるのを待たずに破棄したいみたいな状況を想定してます。
- 281 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:19:05 ID:oRcV/dFn.net]
- >>271
純粋仮想関数であることを示すための専用の構文らしい。pure-specifierという。
- 282 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:22:16 ID:8wRp1qeu.net]
- >>273
空とswap
- 283 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:26:42 ID:r0ibn4Bf.net]
- >>275
場当たり的な対処に思えますが、そういうのが嫌ならマメにスコープを切れということでしょうか。
- 284 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 10:03:31 ID:jP7OzWuZ.net]
- >>276
じゃあvectorをnewしたらいいじゃん 頭使えよ
- 285 名前:デフォルトの名無しさん [2020/01/17(金) 11:18:09 ID:fMuYUnvE.net]
- >>265
tcl/tk wxWidgets Qt
- 286 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:09:31 ID:FiFP8PG3.net]
- Qtはメジャーな製品でよく使われてる印象がありゅ
- 287 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:12:10.21 ID:oPB0sz0H.net]
- MS製にこだわって頑なにMFCみたいな化石使ってる奴いるけど普通にサードパーティのツールキット使うのが主流
- 288 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:58:41.79 ID:sP/gsAG3.net]
- 他人のところの事情も知らんくせにシッタカこくと
聞こえたやつ全員からそれぞれ色んな理由でアホにされるぞ
- 289 名前:デフォルトの名無しさん [2020/01/17(金) 13:10:35.05 ID:fMuYUnvE.net]
- GTKは糞
- 290 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:38:21.01 ID:oPB0sz0H.net]
- >>281
選択肢に.NETが出てくるあたり何の制約もない状況でサードパーティが使えない理由とは?
- 291 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 14:31:40 ID:sP/gsAG3.net]
- 身バレするから書かない
- 292 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 14:39:28 ID:8NRoOtOw.net]
- スレ違いでしょ。続きはWin32APIスレに移動してどうぞ。
- 293 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:05:49 ID:r0ibn4Bf.net]
- vectorをnewする?
ゴミみたいなこと言うな
- 294 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:19:25 ID:yexmiyzj.net]
- 質問する側の態度とは思えん
- 295 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:28:54 ID:WQqGcJSL.net]
- > 自分で new したなら delete すれば良いと思うが
良いと思ってるならvectorもnew/deleteで良いでしょ
- 296 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:35:23 ID:NjgiFnOV.net]
- vector newでいけない理由を先に説明してくれないと
- 297 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 17:45:27.47 ID:xt9i4Zu8.net]
- > スコープを抜けるのを待たずに
> 破棄したいみたいな状況を想定してます。 破棄するタイミングはコンパイラには分からんのだろ 人が判断するしかないなら「場当たり的」にやるしか無いのでは
- 298 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 17:56:19.89 ID:8NRoOtOw.net]
- vector::clear()、vector::shrink_to_fit() の連続実行で十分なのでは?
- 299 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 18:12:09.22 ID:2FWha3Nl.net]
- shrink_to_fit
capacity()をsize()に縮小させるというリクエストを行う。 実装依存の最適化を許可するために、縮小するという動作は仕様上強制されない。 縮小されないかもしれない、らしい
- 300 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 11:20:53 ID:Iw/95SDF.net]
- たいていは逆にスコープを破棄のタイミングに合わせるような書き方すればいいだろ。
分岐の激しい破棄条件書くくらいならそっちのが楽なことは多い。
- 301 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 11:59:37 ID:timcC3h8.net]
- while {
- 302 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:04:39 ID:timcC3h8.net]
- 途中で投稿してしまい失礼。
do { } while(0); で括って、処理が続行できない場合はbreakして、doループを抜けたすぐ下でで資源解放する古典的な記述でいいのでは。
- 303 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:12:16 ID:LluV6Hhd.net]
- 糞野郎にみんな親切だな
- 304 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:36:14.37 ID:cLOUBKze.net]
- gotoを避けるためにgotoよりクソなコードを書くのがいいわけねえだろ
- 305 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:54:44.30 ID:timcC3h8.net]
- ま、資源解放のコーディングが楽になるなら正義でしょ。
- 306 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:33:12 ID:cLOUBKze.net]
- >>298
確認するが、ここがC++スレということは忘れてないよな?
- 307 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:37:31 ID:sDwxplmd.net]
- メモリがもったいない言うけど、ホントにカツカツなのだろうか
環境的に余裕であれば妙なコーディングする意味がない
- 308 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:06:16 ID:6Wtj4R8r.net]
- どんくらいスキマと余裕があるのかを常時監視するソフトウェアはかんたんに作れる
なんせわたくしはC++を極めましたからな
- 309 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:37:07 ID:0qsbj5e6.net]
- >>297
gotoより糞な訳無いだろ こんな単純で頻出する制御構造が文法上ループにせざるを得ないのが悪いだけ まあtry catchと同型だが、これだと遅くなるしね
- 310 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:39:57 ID:cLOUBKze.net]
- >>302
doでない単純な複合文とgotoで済む話だ アホwバカwww
- 311 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:44:02 ID:0qsbj5e6.net]
- gotoだとRAII対応できないじゃん
- 312 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:44:36 ID:7kb+tsdB.net]
- すまねーよ。他の例外で飛ばされたらどうすんだ馬鹿。
- 313 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:46:21 ID:cLOUBKze.net]
- >>304
do(0) なんて持ち出すアホが RAII かよw
- 314 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:47:02 ID:0qsbj5e6.net]
- まあ最近は
[&]{ ... }(); で書くことが多いが
- 315 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:48:42 ID:0qsbj5e6.net]
- do{}while(0);の問題は知らない奴が混乱するって一点のみだろ
- 316 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:59:02 ID:cLOUBKze.net]
- 「知ってるやつ」の言い訳を、ここで開陳してもらおうか
最近、笑う健康法ができてないんで、よろしく頼むわ芸人さん
- 317 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:04:02 ID:0qsbj5e6.net]
- その前にgotoより糞ってのが既に成立してないじゃん
どこが糞なのか具体的に
- 318 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:10:26 ID:cLOUBKze.net]
- ははは、話を逸らすしかねえよな
「do{}while(0);の問題」てのが他の問題によって 成り立つのか成り立たねえのか影響されると 自ら自白してやがる(核爆 助けてやらねえよ、自分でなんとかしなアホwバカwww
- 319 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:15:23 ID:0qsbj5e6.net]
- 意味がわからないよ
煙に巻いて逃げる気かなw
- 320 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:19:10 ID:cLOUBKze.net]
- >>312
逃がさねえぞ 「知ってるやつ」の言い訳を、ここで開陳してもらおうか 最近、笑う健康法ができてないんで、よろしく頼むわ芸人さん
|

|