- 1 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 06:04:52.38 ID:ufThBpcD.net]
- エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう 半角空白やタブでのインデントはスレに貼ると無くなります コードを貼れる所 codepad.org/ https://ideone.com/ 前スレ 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1530384293/
- 2 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 06:06:22.84 ID:ufThBpcD.net]
- c++builder10.3 community
IID_PPV_ARGSを使わない場合どうしたら良いか教えてください 何を入れたら良いのかわからないです #include <windows.h> #include <tchar.h> #include <shlobj.h> #include <shellapi.h> #include <commoncontrols.h> void __fastcall TForm1::Button1Click(TObject *Sender) { IImageList *piml; SHGetImageList(SHIL_JUMBO, IID_IImageList, (void**)&piml);// pimlがNULLになる SHGetImageList(SHIL_JUMBO, IID_PPV_ARGS(&piml));// 成功 }
- 3 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 07:22:25.34 ID:br5v3uv4.net]
- わけのわからん言語をこねくり回して、つまらんことしてちゃ、つまらん。
- 4 名前:デフォルトの名無しさん [2018/12/28(金) 11:40:52.89 ID:sicn3fFV.net]
- O2
- 5 名前:デフォルトの名無しさん [2018/12/28(金) 11:42:24.93 ID:VQYieTPu.net]
- つまんね
- 6 名前:デフォルトの名無しさん [2018/12/28(金) 11:48:00.87 ID:e5XGwJ2H.net]
- >>997
UTF-8 は char * に入れるもの char32_t * ならぎりぎりセーフ wchar_t * は wcs 用 UTF-32 を wchar_t * に入れる
- 7 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 12:09:16.93 ID:qtS4fp6w.net]
- utf8は漢字仮名に3バイト使ってることわかってんのか
処理を簡単にするためいったんwchar_t使うのは普通のこと でなければ文字数のカウントすら文字コードを調べる羽目になる
- 8 名前:デフォルトの名無しさん [2018/12/28(金) 12:17:53.33 ID:sicn3fFV.net]
- その用途ならchar32_t*ってことじゃね
- 9 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 12:21:31.54 ID:I8tv0Dcv.net]
- 調べる羽目になるっていうけど、たったそれだけのことでしかない
当然、パフォーマンス的に最適な方法は場合による
- 10 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 13:36:08.91 ID:qtS4fp6w.net]
- >>8
c++17は調べてないが、 char32_tだと文字列処理のライブラリも正規表現も使えないだろ。 既存のライブラリ使うためにまた変換するのか? >>9 たったそれだけて、文字列処理なんか主たる作業じゃないC/C++プログラマにとっては、 utf8の文字コード常に思い浮かべながらコーディングするなんてのは不快極まるだろ。 *x == 'あ' これが書けないことがたったそれだけかよ
- 11 名前:デフォルトの名無しさん [2018/12/28(金) 13:40:58.79 ID:VQYieTPu.net]
- endian でドツボですねわかります
- 12 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 13:46:43.01 ID:qtS4fp6w.net]
- そもそもchar32_tてutf32用だろwwww
- 13 名前:デフォルトの名無しさん [2018/12/28(金) 14:07:56.51 ID:e5XGwJ2H.net]
- 判ってないなお前
- 14 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 22:03:45.49 ID:n6DxUiN/.net]
- このなかで一番美人なのって真ん中だよね?深キョンレベルだと思うのだが
ちなみに向かって右は目も鼻も整形してるって本人が公言してるけどそれ抜きにして誰が一番美人だと思う? bigsta.net/media/1933567086757747003_3564907098
- 15 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 09:44:06.88 ID:ixKuXlJx.net]
- VSだとwchar_tは16ビットだろ。
だから3バイト以上/文字あるutf8だとおいしくもなんともないが、 unixは32ビットなんで、シェル出力をfgetwsでwchar_tで受け手、時にwstringで処理すると、 fgets->charより格段に楽に処理できる場合がある。 環境依存であんまり人に推奨できないだろうけど、unix, gcc限定なら正しく処理できる もちろんwslでも使える
- 16 名前:デフォルトの名無しさん [2018/12/29(土) 12:44:13.02 ID:EK4sWEwk.net]
- 次から次へと嘘を並べるのがウリナラ
密漁船を捜索中だった→密漁船は既に発見し救出中(実際は瀬取り中?)だった レーダーは水平以下へ照射していた→上空へレーダー飛んだのはなぜ 機体は真上を飛んでいた→実際は1km以上遠方だった カメラを向けただけで照射はしていない→レーダーも回転して対面していた
- 17 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 13:22:25.41 ID:Ol/xTs6w.net]
- 環境:Win10/VC++2015
WinSockでマルチキャスト受信のプログラムを作っているんですが、 マルチキャスト送信している別PCとの接続において、 以下のケース2の挙動に困っています。 ■ケース1(期待する挙動) LANケーブルが接続されている状態で受信ソフト起動 ⇒ recvfrom()で受信する ⇒ LANケーブルを抜く ⇒ recvfrom()がブロックする ⇒ LANケーブルを挿す ⇒ recvfrom()がデータを受信し、ブロックが解除される ■ケース2 LANケーブルが接続されていない状態で受信ソフト起動 ⇒ recvfrom()がブロックする ⇒ LANケーブルを挿す ⇒ recvfrom()はブロックしたまま、いつまで経っても解除されない (受信&ブロック解除してほしい) なぜrecvfrom()はブロックされたままなのでしょうか?
- 18 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 13:25:48.49 ID:EK4sWEwk.net]
- selectしてないから
- 19 名前:17 mailto:sage [2018/12/29(土) 13:51:03.81 ID:Ol/xTs6w.net]
- >>18
selectは「複数ソケットのとき」という先入観があったのですが、 1ソケットのときでも使うんですね。 ありがとうございました!
- 20 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 13:06:57.06 ID:bhbCdqKe.net]
- gccでしか確認してないが、warningは出るんだが
前にu8をつけない'あ' は int (4バイト)展開されるんだな u8つけてしまうと下位1バイトしか処理されないんで正しく処理されない。 wchar_t buf[0x100]; としとくと buf[i] == L'あ' ではwarningすらでない.
- 21 名前:デフォルトの名無しさん [2018/12/30(日) 16:05:04.48 ID:FqO1nm3e.net]
- 文字リテラルにu8プレフィックスは使用できない。
- 22 名前:デフォルトの名無しさん [2018/12/30(日) 16:10:42.14 ID:kRHvhG4M.net]
- 【TOKIOがまた被曝を応援】 「不勉強」「操られている」のはローラではなく、安倍と食事した奴
rosie.5ch.net/test/read.cgi/liveplus/1546137382/l50
- 23 名前:デフォルトの名無しさん [2018/12/30(日) 16:13:30.28 ID:Y/PcKL5Q.net]
- https://cpplover.blogspot.com/2012/02/blog-post_16.html
- 24 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 16:43:37.53 ID:bhbCdqKe.net]
- >>21
いったいいつの時代の話してるんだ古すぎるんだよ情弱 C++17から問題なく使用できる
- 25 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 16:50:02.84 ID:bhbCdqKe.net]
- 情弱がねごとほざくからそのたんびにイラン労力強いられることとなる
ちったぁ情報収集してこいよダニ
- 26 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 16:50:18.97 ID:bm6ZOgnS.net]
- どうせだったら、utf8専用のchar8_t型も用意しといてくれたら良かったのに。
ascii文字圏の連中にはどうでもいいことなんだろうけどw
- 27 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 23:19:20.59 ID:+xBVE+bB.net]
- 教えてください。
C++のvectorについてです。 あるvectorの要素を自分自身に追加したいとき、どうすればよいのでしょうか。 例えば、v.push_back(v[2]);のようなことをしたいのです。
- 28 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 23:25:38.38 ID:fEPs2N4H.net]
- それでいいんじゃね?
- 29 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 07:35:40.55 ID:fsnZuStD.net]
- >>27
それ以外の何を望むの? 特定場所への挿入v.insertぐらいしかないじゃん
- 30 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 07:57:31.16 ID:kcuDnRZu.net]
- 27です。レスありがとうございます。v.insertでうまく行きました。
v.push_back(v[i])だとなぜか空の要素が追加されてしまい、困っていました。
- 31 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 08:53:01.66 ID:Ls1ZsSUM.net]
- >>27
https://stackoverflow.com/questions/18788780/is-it-safe-to-push-back-an-element-from-the-same-vector
- 32 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 09:18:55.86 ID:Ls1ZsSUM.net]
- >>30
まともなpush_backの実装なら対策されているので問題ないはず。 無対策でも明示的にコピーコンストラクタを呼べばうまくいかくも。(要素の型をTとする) v.push_back(T(v[2]));
- 33 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 09:25:50.67 ID:rwDIj1dr.net]
- あ〜そういうことか
俺もハマりそうだなそれ でもそれはvectorの実装側の責任になるか
- 34 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:05:21.41 ID:fsnZuStD.net]
- >>27
意図しないエレメントが追加されてしまうC++は何?バージョンも併せて教えてよ
- 35 名前:27 mailto:sage [2018/12/31(月) 10:10:54.60 ID:kcuDnRZu.net]
- 環境書くのを忘れてました。すみません。
Win7、Visual Studio 2008です。
- 36 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:19:59.32 ID:fsnZuStD.net]
- >>32
まともでない実装ってのはどのテンプレート?つかコンパイラ?
- 37 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:27:09.66 ID:fsnZuStD.net]
- >>35
thx なるほど10年前のコンパイラならstlにバグ残ってる可能性あるわな 2011、2014、2017でずいぶん新しくなってるよ 仕事で2008指定されてるとかじゃなければ2017入れて損することあんまないと思うけど
- 38 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:27:22.88 ID:Ls1ZsSUM.net]
- さすがにvectorではまともでない実装にお目にかかったことはない。
VisualStudio2010のMFC独自コンテナCArrayで同じ問題ではまったことがあっただけ。
- 39 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 11:04:33.38 .net]
- マジかよ MFC 最低だな!
失望しました。WPF 使うの止めます
- 40 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 11:44:30.10 ID:zd5ZDQG6.net]
- vsに2011ってのもあったのか、いやあ勉強になるなぁ
- 41 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 11:46:37.75 ID:sEEumFv8.net]
- C++の規格と混同しているっぽい。
- 42 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 11:58:04.83 ID:fsnZuStD.net]
- C++の規格の話
- 43 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 12:28:15.56 .net]
- つまり江添亮の話
- 44 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 20:39:25.62 ID:kcuDnRZu.net]
- >>31
参考になりました。ありがとうございます。
- 45 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 03:54:37.57 ID:vBi+DP3M.net]
- 元日記念カキコ
- 46 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 15:38:58.76 ID:tgQbht6s.net]
- gnuのobstackってざっくり理解するなら普通にデータ構造としてのstackのいち実装って認識であってますか?
- 47 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 17:39:02.76 ID:i/vicifv.net]
- うん
- 48 名前: [2019/01/01(火) 18:06:26.08 ID:kK3EzG3m.net]
- はっキネン
- 49 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 02:16:07.41 ID:oIrbeINi.net]
- Privateにメンバ関数を置くのって別にいいですか?
- 50 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 02:25:02.88 ID:rCo9hP60.net]
- いいんじゃね?
そのクラスの中のみでよく使われる関数とかprivateにする
- 51 名前: mailto:sage [2019/01/03(木) 03:52:58.78 ID:moS/XERj.net]
- zen2 5GHz が来た!
https://wccftech.com/amd-ryzen-3000-zen-2-cpus-ryzen-9-3900x-ryzen-7-ryzen-5-listed-online/
- 52 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 15:12:15.57 .net]
- 誤爆しました
- 53 名前:デフォルトの名無しさん mailto:sage [2019/01/04(金) 00:19:38.87 ID:C/NwCX/x.net]
- デバッガってどう動いたら正常なんでしょうか
vscodeでハロワしてみてブレークポイントで止まる→これでいいんだよな?となりまして
- 54 名前:デフォルトの名無しさん mailto:sage [2019/01/04(金) 00:50:16.36 ID:ihBPygyi.net]
- リクツを語ると
デバッガにデバッガを適用するとバグかどうかを検出できない
- 55 名前:デフォルトの名無しさん mailto:sage [2019/01/04(金) 20:57:44.72 ID:leXZv0J4.net]
- Win32APIなんですが、
ウィンドウクラスにアイコンハンドルを設定してWS_OVERLAPPEDWINDOWスタイルで CreateWindow()すると問題なくタイトルバーにアイコンが表示されるのですが、 WS_POPUPスタイルでCreateWindow()した後にSetWindowLong()でWS_OVERLAPPEDWINDOWスタイルに変更すると、 タイトルバーにアイコンが表示されません。 WM_SETICONをSendMessage()しても変わりませんでした。 どうすれば表示されるようになるでしょうか?
- 56 名前:デフォルトの名無しさん mailto:sage [2019/01/04(金) 23:35:35.15 ID:GKwYgY3X.net]
- >>55
つ Win32API質問箱
- 57 名前:55 mailto:sage [2019/01/05(土) 00:28:56.43 ID:1yzAmca9.net]
- >>56
そちらはスレが盛んでないので、こちらでお聞きしました・・・
- 58 名前:デフォルトの名無しさん mailto:sage [2019/01/05(土) 08:53:49.71 ID:b8ezfK6l.net]
- じゃあ自力で頑張って下さい
- 59 名前:デフォルトの名無しさん [2019/01/05(土) 12:19:51.40 ID:wMTnOPNR.net]
- >>55
eternalwindows.jp/control/controlbase/controlbase06.html chokuto.ifdef.jp/urawaza/api/SetWindowLong.html SetWindowLong 関数で変更されたそのデータは SetWindowPos 関数が呼び出されるまで反映されません 👀 Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
- 60 名前:55 mailto:sage [2019/01/05(土) 22:25:41.89 ID:1yzAmca9.net]
- >>59
SetWindowLong()後にSetWindowPos()はコールしていたのですが、 WM_SETICONをSendMessage()するときのアイコンハンドル取得方法がまずかっただけでした(汗) (LoadIcon()のHINSTANCE引数が正しくなかった) 今は問題なくアイコンが表示できています。 お騒がせしました!
- 61 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 01:50:50.63 ID:crl+XFhH.net]
- >>60
https://g.co/kgs/ZEZu9X 👀 Rock54: Caution(BBR-MD5:36abcc1a7fb24404caf692865ab3af18)
- 62 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 13:24:20.28 .net]
- >>57
盛んでないなら先ず盛んにしろよ 欲しい者は先ず自ら与えると言うぞ
- 63 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 16:05:17.54 ID:s8+QTrGL.net]
- 難癖つけ太郎
- 64 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:00:48.26 ID:29GPlbw0.net]
- ツケタロサァン
- 65 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 15:58:07.62 ID:LoPBTm2D.net]
- C++て3年周期で新規格リリースされるんだなC++20が来年発表て、
えーかげんもうついていけんわ 家電のモデルチェンジじゃあるまいし。言語の追っかけなんかやってられん。
- 66 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 18:23:48.31 ID:h/UgfZoi.net]
- C言語の需要はそういうところじゃねえの
もうこれ以上進歩しないが大抵のことはできる 適度に難しいところもある
- 67 名前:はちみつ餃子 mailto:sage [2019/01/09(水) 18:30:18.01 ID:wEN9wc2j.net]
- >>65
もしそうしたければ古い版の規格で書いてもええんやで。 C++20 が出ても C++11 が消滅するというわけでなし。 まあ主要なコンパイラがサポートしなくなったらしょうがないけど……
- 68 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:38:39.03 ID:teyoDIou.net]
- C++11が神過ぎる。
それまでとは雲泥の差。 これだけでずっと戦える。
- 69 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 07:42:30.84 ID:JUlDRUM2.net]
- >>67
言語って自分だけで済まんだろ キャッチアップしていかんと人の書いたコードが読めなくなる こんな短期間でアップデート繰り返すんじゃなくもっと精査した上で規格変更しろといいたい アップデート繰り返す度にユーザ減少してるだろ
- 70 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 07:53:15.61 ID:JUlDRUM2.net]
- >>66
new/delete無造作に使ったコードを組込なんかで書くと、 メモリフラグメント作りまくるだけだからな。 ハードウェアの一部としてRTOS上で安定動作させるためには、 ポインタ使いまくりのbetter Cとして書くしかない。 4kB メモリのRL78でコード書いてみろと
- 71 名前:デフォルトの名無しさん [2019/01/10(木) 11:58:03.74 ID:+qf2Eno1.net]
- >>69
C++の良かったのは仕様が枯れてることだったのにな 今は逆を逝っててどんどん人が離れて逝ってる
- 72 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 13:39:40.00 ID:AlpMGZ50.net]
- utf-8の文字コードが格納されてるchar配列から、デコードされた文字をstd::string型に入れる方法を教えてください
以下のような変換を実装したいです char ai[] = {0xe3, 0x81, 0x82, 0xe3, 0x81, 0x84}; // "あい"のutf-8コード std::string str = ?? std::cout << str << "\n"; // prints "あい"
- 73 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 14:15:08.46 ID:XfqugDbL.net]
- >>72
aiの最後にnull文字は入れないの? 入れないなら srd::string str { ai, sizeof(ai)/sizeof(ai[0]) };
- 74 名前:デフォルトの名無しさん [2019/01/10(木) 14:38:26.46 ID:f6PjJx/6.net]
- >>72
wstringに入れろ
- 75 名前:はちみつ餃子 mailto:sage [2019/01/10(木) 17:13:07.72 ID:2cm4ZQb/.net]
- >>69
時間を掛けたら扱う項目 (提案) も増えるからどっちでも同じだよ。 一度の変更が大量になるよりは小さな変更を頻繁にした方が良いというポリシー。 その方が実際の運用で出た問題をフィードバックしやすいという利点もあるしな。 >>73 配列の大きさを知るには std::size か std::extent を使えよ。
- 76 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 17:38:07.90 ID:d84NrtHP.net]
- C++ には C 以来伝統の sizeof / sizeof 以外に
配列の要素数を知る方法があったはず…と思ったが std::size だったか。 でも標準で使えるのは C++17 以降だよね。 「C++ならテンプレート使えばできますよ」的な情報は色々あるけど、 結局、移植性を考えると古典的な sizeof 割り算が便利だったり。
- 77 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 19:00:06.40 ID:K/rzzMpV.net]
- ちょっと知ったかは、よくよく初心者を馬鹿にする。
自分も、初めは、初心者だったくせに。
- 78 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 19:11:35.64 .net]
- スタティックおじさんにならないように戒めなければ
- 79 名前:デフォルトの名無しさん [2019/01/10(木) 20:37:36.88 ID:WIE9C9TP.net]
- ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは??
https://logtube.jp/variety/28439 【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!? https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/ HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは? https://youtuberhyouron.com/hikakinnensyu/ ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証! https://mitarashi-highland.com/blog/fun/hikakin なぜか観てしまう!!サバイバル系youtuberまとめ tokyohitori.hatenablog.com/entry/2016/10/01/102830 あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開! naototube.com/2017/08/14/for-new-youtubers/ 27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方 https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all 1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10 https://gigazine.net/news/20151016-highest-paid-youtuber-2015/ おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子 https://www.businessinsider.jp/post-108355 彼女はいかにして750万人のファンがいるYouTubeスターとなったのか? https://www.businessinsider.jp/post-242 1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD https://weekly.ascii.jp/elem/000/000/305/305548/ 世界で最も稼ぐユーチューバー、2連覇の首位は年収17億円 https://forbesjapan.com/articles/detail/14474
- 80 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 22:25:25.90 ID:jgU/jZru.net]
- std::sizeが使えなかったとしても(主要なゲーム機の環境の1つはC++14止まりだし)、テンプレートで取得するのはC++の移植性には影響しなくないか?
- 81 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 22:41:00.66 ID:poVh1zdG.net]
- ていうかGUIとかマングリングの統一とかvtblが最初に来ることとか
テンプレート周りばっかりじゃなくて解決して欲しい問題いっぱいあるんだけどなぁ あと個人的にはプロパティとかも欲しい
- 82 名前:はちみつ餃子 mailto:sage [2019/01/11(金) 00:50:02.24 ID:le18Krsa.net]
- 配列の要素数を取得するだけのものを自分で書くならこんな感じかな。
template<class T, size_t N> std::size_t size(T (&)[N]) { return N; } 実装自体には sizeof を使ったって害はあまりない (あえてする意味もないけど)。 template<class T, size_t N> std::size_t size(T (&a)[N]) { return sizeof a/sizeof a[0]; } sizeof でのやり方を「そのまま」書く、またはマクロで覆うのは、 型チェックの支援を受けられないから変なミスをしやすい。 変数 a が (配列ではなく) ポインタのときに sizeof(a)/sizeof(a[0]) という式がコンパイルは通っちゃったりするし。 変数名を二回書かなきゃならないのも、 何かの修正のときにうっかり片方だけ書き換えたりとか有りがち。 プログラミングをそれなりに長くやってると、 馬鹿みたいなつまらないミスをした経験のひとつやふたつやみっつや二百くらいはあるでしょ。 型システムはそういうのを多少なりとも事前に検出してくれるありがたい仕組みなんだから、 積極的に活用したいところ。
- 83 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 01:26:18.63 ID:bUNhmYA9.net]
- C++標準じゃないけどVC++の_countofが重宝してる
- 84 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 07:47:16.24 ID:PueFbUtC.net]
- >>75
>時間を掛けたら扱う項目 (提案) も増えるからどっちでも同じだよ。 同じ訳ないだろが、 仕様変更、追加したものの、さんざん使ったあげくそんなもん使うなってのはいくらでもあるだろ。 auto_ptrはどーした。 だから3年なんて製品のモデルチェンジ並の仕様変更じゃなく、言語オタク共がもっと時間をかけて精査して、 10年に一度ぐらいの変更にしとけってこった。 そもそもCのプリプロセスだったわけで、 Cとの整合性は確保した上で双方同時に仕様変更しろといいたい。 だいたいどっち見て仕様変更してんの?言語オタクのセンズリか?wwww
- 85 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 11:25:51.10 ID:saOHWwmK.net]
- 3年ごとなのはいいと思うけど、クラステンプレートの引数推定なんか
関数テンプレートみたいに推論できないテンプレート引数が残る形に出来ない上に エイリアステンプレートには使えないしクラステンプレートの参照にも使えないし デフォルトテンプレート引数では省略できないしで・・ 便利だけど、あまりにも片手落ちじゃね?と思うことはある
- 86 名前:はちみつ餃子 mailto:sage [2019/01/11(金) 13:40:13.69 ID:le18Krsa.net]
- >>84
> 同じ訳ないだろが、 > 仕様変更、追加したものの、さんざん使ったあげくそんなもん使うなってのはいくらでもあるだろ。 同じだよ。 散々使ったからようやくわかったことで、ただの言語オタクどもがどんだけ理屈をこねた ところで現実的なプロダクトの実際なんかわかりゃしない。 精査をしっかりすれば事前にどうにか出来てたと本当に思うのか? > auto_ptrはどーした。 これはまあ……アレだ…… これ自体は擁護しようがないほどアレだけど、 一番アレなのを抜き出して言うのもちょっとどうかなって。 強いて言えば、当時としてはスマートポインタという概念を提示出来たという 成果といえなくもないんじゃないかな……。 > 10年に一度ぐらいの変更にしとけってこった。 https://i2.wp.com/ds3.jp/wp-content/uploads/2017/07/023.jpg > だいたいどっち見て仕様変更してんの?言語オタクのセンズリか? そうならないために言語オタクにゆだねない (実際の運用で見極める) という選択なのに、 お前はもっと言語オタクに活躍しろって言ってんだぞ。 おかしいだろ。
- 87 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 14:33:07.36 ID:iMdUEP7b.net]
- 仕様変更が止まってる言語はともかくとして仕様策定のない言語に比べればC++の更新スパンは割と長い方という認識がある
これより長いのメジャーどころだとC11(1,20年)/Fortran2008(5年)/Ada2005(10年)/Haskell(5年前後)くらい? Haskellなんかは処理系拡張ゴリゴリだしアテにならないし他はもう古めかしさを感じるなぁ
- 88 名前:デフォルトの名無しさん [2019/01/11(金) 14:56:08.31 ID:9UT8ehvY.net]
- これ以上Dをdisるのはやめて
- 89 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 16:08:50.25 ID:c9plSaZI.net]
- まぁ、TypeScriptは年6回updateしてるけど次が待ち遠しいな。
- 90 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 20:26:13.94 ID:KLK+GnJ4.net]
- 426名無しでいいとも!@放送中は実況板で2019/01/10(木) 18:17:49.03ID:b7PfIJnh0
新しい物好きな人は、よく、古いもの馬鹿にする。 古いものに、大切なものがあることが、 よくあることを、知らない人が多い。
- 91 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 08:06:07.36 ID:TXMmMfvK.net]
- 古いという感覚を持つと話をしただけで古いものが悪いとは一言も言っていないが……?
一方でもしその良さが「新しい仕様を頻繁に覚えなくて良い」なら、言語に対して掛けるコストが減る事と、自身が怠惰である事の2面性を常に持つかもね プログラマなんて怠惰でナンボだけど覚える事に怠惰か書く事に怠惰か人それぞれよね 個人的には草案で嬉しそうな機能を追加します!って言いながら実際の仕様では無限に延期される方が嫌
- 92 名前:デフォルトの名無しさん [2019/01/12(土) 13:08:56.44 ID:k/r1EiKa.net]
- これな
youtube qqwgldvnNlk #t=41m41s
- 93 名前:388 mailto:sage [2019/01/12(土) 23:22:31.27 ID:0iVYXuy3.net]
- >>82
配列の参照のsizeofは配列のサイズじゃないから害はあるな()
- 94 名前:388 mailto:sage [2019/01/12(土) 23:28:35.62 ID:0iVYXuy3.net]
- >>84 は面白いよな、散々使うことで問題が見付かるって自分で初っ端から言ってるのに「だからスパンを長くしろ」つまり散々使うことが出来ないようにしろって言ってる
そして最後には言語オタクのセンズリかって、言ってる事が弾けまくってるな。 言語オタクのセンズリになってるのが不味いから、積極的に一定毎に更新するようにしていってるんだがな
- 95 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 09:10:56.47 ID:47MX21Fj.net]
- 何が言いたいのか分らん
- 96 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 09:35:19.34 ID:e8OabTpu.net]
- 箇条書きでよろ
- 97 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 14:11:24.44 ID:goGtxYMD.net]
- おれは >>84 に同意だな
数年で更新ってそれがどれだけワークしてるのさ だいたいどれだけ認知されてるのかようわからん小さい機能追加が山盛りな一方で 大規模なconstexprとかひかえめにいって大クソじゃん? 理論もなければ、現実のワークフローなにも考慮にはいってない 結局オナニーでしょ、何オタクかはしらんが
- 98 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 15:03:59.93 ID:lykUAvmZ.net]
- 1.仕様が確定してからでなければ実務には使われない
2.実務で使われないと良し悪しは分からない 3-1.仕様確定のスパンが短いと、仕様に提案されてから試されるまでが短い(もし悪ければ次で撤回も可能) 3-2.仕様確定のスパンが長いと、提案されてから実務で試されるまでが長い(撤回されないと言えば聞こえは良いが、当然悪いものが残り続ける) んで仕様策定を言語オタクのオナニーって言ってるのに、実務で試されない、策定の期間だけ伸ばして言語オタクなんとかしろって言ってるように聞こえるからよく分からんわけだ だって君たち仕様確定してからじゃないとそうそう草案の機能なんて使わないでしょ?追わないでしょ?私だってそうだ 期間が長ければその間に普及する概念も多くなるし(少なくともc++はそれを取り込む方針の言語なので)あんまり長くすると大変だと思うよ
- 99 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 16:52:54.35 ID:bhcZ5Z4Z.net]
- >>97
c++14のconstexprは条件分岐とかループにも対応してるから、そこそこ使えるよ。 文字列リテラルの長さを取得する関数とかも定数化できるし。 テンプレートの非型引数をあれこれする関数を定数化したりとか。
- 100 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 16:58:40.56 ID:goGtxYMD.net]
- 機能追加したい人が、ブランチして機能追加して実務で実証して、
それから正式に仕様を提案すりゃいいじゃん なんで仕方なく業務でC++使ってるだけなのにベータテストみたいな 仕様更新に巻きこまれなきゃならないのさ
|

|