- 1 名前:デフォルトの名無しさん [2022/02/19(土) 11:56:42.14 ID:kSnJ/KwP.net]
- 前スレ
C++相談室 part158 https://mevius.5ch.net/test/read.cgi/tech/1636969758/
- 820 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 02:53:58.08 ID:lTtwcp13.net]
- C++のclassもオブジェクト指向のための文法として捉えるべきではない
- 821 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 03:00:57.77 ID:3NXOGCnE.net]
- C++のclassにpolymorphicというキーワードがあればclassとして理解しやすかっただろうに
C++自体が古いから仕方ない面もあるのだが
- 822 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 05:37:45.41 ID:ZLovgCJ7.net]
- >>804
C++ も struct だけでもたいして困らんけどな
- 823 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 06:50:05.99 ID:yEOSoCRj.net]
- SmalltalkやEiffielみたいにOOPとしての完璧さを目指した言語ではないからなC++は
PascalへのアンチテーゼがCであったように、完璧さを目指すことへのアンチテーゼでもある そこを批判するやつとは根本的に相容れない
- 824 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 06:54:16.14 ID:ivAOVlIc.net]
- CからC++へ行かずに
CからGoとRustへ行けば十分に問題ない
- 825 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 08:09:28.04 ID:il5bYK9P.net]
- >>811
>>787
- 826 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 17:34:12.61 ID:4cSTCvUa.net]
- >>767
言い回しがそいつのtwitterに出てくる感じと同じすぎる ワイ大学生なんだけどその人20年以上前からそんな口調なのか
- 827 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 17:45:20.70 ID:R4GrqV7T.net]
- 河野氏になんか恨みあんの?
俺知り合いだから代わりに言っとくよ
- 828 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 19:53:32.15 ID:mHRscCZz.net]
- if (xmm0 == xmm1)って下のやり方しかない?
_mm_movemask_epi8(_mm_cmpeq_epi...) == 0xFFFF
- 829 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 21:25:00.23 ID:SxSNo1AU.net]
- >>814
嫌な知り合いすぎる 無自覚?
- 830 名前:デフォルトの名無しさん mailto:sage [2022/04/01(金) 01:39:47.02 ID:/eP2awHk.net]
- PTESTがあるぞ
- 831 名前:デフォルトの名無しさん mailto:sage [2022/04/01(金) 20:07:44.20 ID:kF+DLIFz.net]
- >>817
_mm_testc_si1281命令でできるのか サンクス
- 832 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 03:00:41.15 ID:JI80ciY+.net]
- ハンガリアン記法、いまだ健在なり
- 833 名前:デフォルトの名無しさん [2022/04/02(土) 05:57:08.65 ID:iaVgC0+D.net]
- プログラムほぼ未経験だけどこれから始めます
今は坊主頭の人の本を読み始めたところです IDEのCLionを考えています 他におすすめあったら教えてください
- 834 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 08:28:40.83 ID:KzPuamrt.net]
- Visual studioオススメ。VSCode+CMakeでもいいぞ
- 835 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 12:16:55.77 ID:roqf8g4r.net]
- bitsetで実装し終わった後にvector<bool>がconstexpr対応してる事知ったんだが?
はー先に教えてくれよ(クソデカため息)
- 836 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 12:49:25.68 ID:/j0/DBCU.net]
- vector<bool>なんか使っちゃいけません
- 837 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:22:05.97 ID:YBLKDYh3.net]
- bitsetを実現するのならvector<bool>は妥当
だと思う派
- 838 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:30:40.42 ID:YBLKDYh3.net]
- しかしvectorKbool>様のブツ(一般に数千ビットとかのデカくて比較的疎なやつ)がconstexpr対応している
と特段のありがたみと かあるん??
- 839 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:35:10.49 ID:X+p83iug.net]
- 二進法で書いちまった方が…
- 840 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:36:56.48 ID:T5fexWVc.net]
- vector<bool> 駄目って言ってる奴らって思考停止のバカでしょ
「特殊化されてるのである時は注意が必要」というのを理解できず思考停止でとりあえず禁止と見なしてるバカ
- 841 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:38:37.01 ID:YBLKDYh3.net]
- これか
https://cpprefjp.github.io/lang/cpp20/more_constexpr_containers.html やっぱ内部でループのみならず、new / deleteするような関数までconstexprであってほしいと願うマニアが一定数居るんやな……
- 842 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:40:50.98 ID:CNYN+CEs.net]
- キューとかスタック的な使い方なら自然だと思うね
- 843 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:44:28.98 ID:p6D1htC0.net]
- 一度作ってみたけどconstexpr関数内でnewしたらその関数内でdeleteまでしなきゃいけないのは使いづらい気がする
- 844 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:53:16.59 ID:ARI85DWJ.net]
- まずはvector<bool>で実装してみて問題あるなら考える派
- 845 名前:デフォルトの名無しさん mailto:sage [2022/04/02(土) 14:53:28.58 ID:YBLKDYh3.net]
- だがちょっとまって欲しい毎秒1億も2億も回るようなループの中でこそ高速化が必須だが
そんなループ内でnew /deleteしようとする発想が最初からなんかおかしいのではないか
- 846 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 18:44:27.58 ID:NmP3n2Yz.net]
- struct Hoge
{ std::vector<Hoge> hoges_; }; ってなんでコンパイル通るの? hoges_の定義時点ではまだ、Hogeの定義は完了していないのに。
- 847 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:05:25.24 ID:Yvr+7/y4.net]
- struct Hoge {
Hoge* ptr; }; が通るのと同じ理屈なんじゃない?
- 848 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:25:23.89 ID:7tOdFV5I.net]
- ソースコード次第やな
allocatorでサイズ使いそうなもんだけど
- 849 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:33:06.66 ID:5C/3HoVM.net]
- 宣言の時点では別に適当
- 850 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:35:01.81 ID:BfkCmsi5.net]
- 宣言?
どこにも宣言のみの記述はありませんけど?
- 851 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:48:52.09 ID:CJTxuxUG.net]
- 半角全角使うな厨が絶滅しますように (AA略
- 852 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 20:07:54.56 ID:Mnzv/avn.net]
- 定義自体は再帰してても大丈夫じゃない?
- 853 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 20:32:55.79 ID:sNbs7j4z.net]
- >>839
あそう、だったら struct Hoge { Hoge hoger; }; これもOKだろw
- 854 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 20:58:54.41 ID:NWvQ4doQ.net]
- 参照だったらサイズが一意になるから問題なく処理できる
実態だったら無間地獄に落とされるからNG
- 855 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 21:17:02.42 ID:sNbs7j4z.net]
- >>841
839は参照じゃないじゃん 話し通じないな
- 856 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 22:20:50.07 ID:wOH19oBO.net]
- えっstd::vector<T> hoge_; とやった場合Tが何であってもその場でhoge_のサイズは決まるから
struct Hogeのメモリレイアウトは鎧袖一触で決まるか ら何の問題も無い 決まらないのはhoge_のインスタンスがポインタで保持することになるヒープ上の領域のサイズであって struct Hogeのサイズは上述の通りstruct Hogeの定義を一通り見たとき鎧袖一触で決まっているから Hoge::hoge_をインスタンス化するタイミングで問題無くインスタンス化されるという印象のような希ガス いや知らんけど ※ 個人の感想です
- 857 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 22:33:18.09 ID:wOH19oBO.net]
- とオモタがなんかVS2019(C++14)で試したら以下のコードのビルドが通る怪現象やな……
template<class T, int N> class VarArr { int T[N]; }; struct Hoge { VarArr<Hoge, 3> m_arr; int m_x; }; Hoge x; 多分環境に拠るんだと思う
- 858 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 22:35:40.26 ID:wOH19oBO.net]
- VarArr<T, N>の定義をまつがえたサーセン……orz
以下のコードなら正しくビルドエラーになる template<class T, int N> class VarArr { T m_arr0[N]; }; struct Hoge { VarArr<Hoge, 3> m_arr; int m_x; }; Hoge x; ワイの答えはこれや!
- 859 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 23:14:48.08 ID:Mnzv/avn.net]
- >>839で適当に回答したけどメンバとしてを実体で持つかポインタで持つかで通るかが決まるな
- 860 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 23:38:16.75 ID:sNbs7j4z.net]
- struct Hoge
{ int a[sizeof(Hoge)]; }; はHogeがまだ定義されていないから、コンパイルできない だったら、なぜ std::vector<Hoge> hoges_; は許可できるんだ
- 861 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 23:53:21.86 ID:dOp+WKyA.net]
- >>847
規格的に問題ないからだが、まあポインタなんでサイズ知らんでもええからだな
- 862 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 00:18:36.05 ID:F+M9/rKi.net]
- >>847
std::vector<Hoge> hoges_; はクラスないしstructのサイズには影響しないからじゃないの? そのクラスないしstructはstd::vector<Hoge> hoges_へのアドレスを保持するだけでしょ? クラスないしstructの中でのhoges_のサイズはすでに決まっている
- 863 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 00:23:58.82 ID:NuCanqg0.net]
- >>847
>>843に書いたが struct Hoge { std::vector<Hoge> hoge_; }; の実質は struct Hoge { struct { (&(hoge_[0])を指すポインタ); (管理用のいくつかのメンバ) } hoge_; }; とゆーことなのでstruct Hogeの中にhoge_[0..]の実体が埋め込まれるわけでは無いから、 hoge_[0..]の型が決まっていなくともstruct Hogeのサイズは問題無く決まるというしくみ 一方hoge_[0]の実体がstruct Hogeに埋め込まれる>>845のケースは気体どおりエラーになる というワケ
- 864 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 09:09:53.47 ID:14cK0a9Z.net]
- >>843
鎧袖一触の使い方間違いで草w
- 865 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 23:12:20.74 ID:JNKuDAOB.net]
- 4、5年c++やってるけどまともなものを作れない
どれくらいで、ネットで有名なソフトって作れるものなの? 例えばvscodeみたいな便利なアプリ
- 866 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 23:46:47.47 ID:9GHqD2yn.net]
- >>852
VScodeはElectronつまりJavaScriptで書かれてるよね
- 867 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 00:26:55.67 ID:btSnYNGS.net]
- >>852
C++Builderが楽だよ
- 868 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 01:43:21.89 ID:QuV3GhxG.net]
- windowsは触ったことがない
- 869 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 02:00:35.56 ID:QYslDBWm.net]
- ならばElectronかTauriがオススメ
WindowsだけでなくMacでもLinuxでも動くマルチプラットフォーム
- 870 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 06:11:04.09 ID:PM3+0qST.net]
- >>852
言語だけ触ってても無理 自分は◯◯を作るんだという 一途な意思がいる ネットでウケるかどうかは通常どうにもできない もし市場の需要を読んで開拓ができるなら もうそのままプロになれる
- 871 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 10:33:40.77 ID:FcLzG6G8.net]
- >>852
まともって言うか一定規模以上のソフトを作ろうと思ったらオブジェクト指向デザインパターンを網羅していく事の方が大事 難しいハッキングをやるよりも設計の方がなんだかんだで難易度高いからな
- 872 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:09:26.03 ID:PM3+0qST.net]
- 「成功者」の法則をなぞるだけでは成果は出せない
そんなの誰でもできるから 形振り構うことより興味の向くまま突っ走るほうが肝心 そうして何かを成し遂げると自分なりの法則ができている それまで周りは散々バカにしてくれるが そんなのに折られないメンタルも大事だ
- 873 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:46:09.74 ID:YcgsN5By.net]
- メモリマップドファイルのライブラリが標準入りするのってまだまだ先ですか??
標準ライブラリとするのに何か問題でもあるの?
- 874 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 19:10:03.35 ID:Ssg9XCyk.net]
- <filesystem>ですら入ったの最近だしあんまり期待してない
socketとかのネットワークライブラリも標準にはないんだぜ?
- 875 名前:はちみつ餃子 mailto:sage [2022/04/05(火) 19:53:34.34 ID:AUzgrMft.net]
- >>852
個人でなんらかのソフトを作る場合には「動くプログラム」を意識するといいよ。 構想通りに設計しようとするよりは機能を極小に絞ってでも動く状態のプログラムを作ってみて、 それを拡張していくという形にすれば行き詰まったところが学ぶべきことが潜んでいるところだとわかる。 ある程度までいったら最初から作り直したくなるときがくる。 学びながら作ったものなんてろくでもないんだから作り直すはめになるもんなんだよ。 どうせ作り直すと割り切って色々やってみればいい。
- 876 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 20:56:02.32 ID:6DtMUNMI.net]
- Googleの人もイテレーティブな開発が良いって言ってたなあ
- 877 名前:デフォルトの名無しさん [2022/04/05(火) 21:08:43.94 ID:79YAP4SX.net]
- あーすべき、こーすべきと雁字搦めにPGを縛る硬直的で強迫的な教条主義が
投げやりなやっつけ仕事を大量生産するという
- 878 名前:ウ訓から色々な提案が出てるのに
教わったことにしがみつく後ろ向きな人が悪しき循環を継続させちまう [] - [ここ壊れてます]
- 879 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 21:15:39.04 ID:YcgsN5By.net]
- C++って他の言語と違って何でも出来るから情報収集に時間使いすぎるんだよな
プランAからZまであらゆる手法を検討して最善手を打たなければどこかで詰む事になる
- 880 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 21:15:57.95 ID:rM7yNqDT.net]
- 大昔の記憶だけどメモリマップというかネットワーク系のライブラリはC++に追加されないのかって聞いたときに
OS依存の仕様は実装されないって聞いた記憶あるけど最近のC++は方針変わったのか?
- 881 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 22:34:00.51 ID:QFtrY3nt.net]
- C++とSTLは別だよ
- 882 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 22:39:47.79 ID:vLZKRt0y.net]
- threadみたいにするならかまわんのだろ
- 883 名前:デフォルトの名無しさん [2022/04/05(火) 22:54:42.49 ID:79YAP4SX.net]
- プロセスがサポートされないアレでか
- 884 名前:はちみつ餃子 mailto:sage [2022/04/05(火) 23:18:25.53 ID:AUzgrMft.net]
- スレッドは OS が提供するスレッドと一対一で対応することを意図しているという記述がある。
https://timsong-cpp.github.io/cppwp/n3337/thread.threads#1 スレッドを持たないシステムに対応付けるならスレッドの生成に常に失敗するような実装になってても仕様には反しないんじゃない? noexcept は例外を送出しないことを保証するけど実行時エラーがないことを保証するわけではない。
- 885 名前:デフォルトの名無しさん [2022/04/05(火) 23:23:24.49 ID:79YAP4SX.net]
- 今さらDOSでC++11か
いや否定はできんけど・・・
- 886 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 23:31:23.00 ID:EtikemGC.net]
- プロセスを持ち出す意味がわからん
スレッドがあればいいんじゃ?
- 887 名前:デフォルトの名無しさん [2022/04/05(火) 23:37:46.31 ID:79YAP4SX.net]
- なんで?
アドレス空間の多重化とプロセス間通信はOSが違ったら移植性なしで割り切るの?
- 888 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 23:42:47.00 ID:EtikemGC.net]
- それがないとスレッドも許されんという理屈がわからない
- 889 名前:デフォルトの名無しさん [2022/04/05(火) 23:52:53.92 ID:79YAP4SX.net]
- スレッドも許されないなんて主張してないが
- 890 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 07:13:16.72 ID:e/YNs2XJ.net]
- 質問ですがイテレータ間の距離はstd::distance<T>(first, last)で求められるそうなんですが
求めた距離を再びイテレータに戻す場合はどうすれば良いですのん?firstとlastがラ ンダムアクセスイテレータならfirst + std::distance(last, first) == lastが成立するという具合に 足せば良いけどランダムアクセスイテレータか否かによらず共通に使えるテンプレートは?
- 891 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 08:10:41.61 ID:tJlAug24.net]
- >>876 std::next() https://cpprefjp.github.io/reference/iterator/next.html
- 892 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 08:51:32.67 ID:hbDmvmaG.net]
- >>876
std::advance(イテレタ,求めた距離)
- 893 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 14:47:30.60 ID:/VxyOfiN.net]
- technical default とかいう新技が出てきたね
- 894 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:03:31.71 ID:OIlaSdNT.net]
- みなさん多次元配列ってどうやって持ってますか?
・blas, lapack等fortranの資源を使いたいからローメジャー、カラムメジャーは宣言時に決めたい ・添字アクセスがネイティブの多次元配列並みに早い ・STLコンテナみたいに使える 等の条件を満たす良いライブラリありますかね 本当はSTLに入ってほしいんですが、なぜ未だにないんですかね?
- 895 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:15:07.58 ID:Iu/ahyl1.net]
- ネイティブの多次元配列とは
- 896 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:18:59.68 ID:OIlaSdNT.net]
- >>881
ああすみません私めは言語障害者だから変な言葉使ってるかもしれません Cの多次元配列のことを変な呼び方をしてしまいました すみません
- 897 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:30:19.00 ID:aY4pnG+o.net]
- eigen gmtlとか?
- 898 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 19:07:48.95 ID:ofj8wLUE.net]
- 1つめがよーわからんけど
・次元数はコンパイル時決定 ・要素数もコンパイル時決定 ・子要素のサイズは全て同じ(arr[0].size()==arr[1].size() が常に成り立つ) ってことでええの? それなら単純にstd::array<std::array<T, 4>,5>でいいとは思うが
- 899 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 19:36:43.45 ID:vJ8PYFJ1.net]
- 全部arrayだとスタックに配置される事あるからvector<array>でやってるな
- 900 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 21:17:51.29 ID:tUlkAQY7.net]
- >>880
std::mdspanというのが提案中だがまだ時間かかりそう
- 901 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 23:18:21.83 ID:NvxWnsbd.net]
- >>877 >>878
レスdクス やっぱいろいろ一般化されたテンプレートがいっぱいあったら テンプレートを特殊化せずに済む幅がひろがりんぐ、
- 902 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 03:17:05.89 ID:yw7pyl+g.net]
- >>883
eigenは遅い gmtlはメンテナンスされてない >>884-885 一次元配列にマップしたときの並び方が柔軟であってほしいって書いてるでしょ 外部ライブラリ必須じゃないかな現状 >>886 mdspanは実体を持たなくてmdarrayは実態を持つんだっけ C++23に入るって話じゃなかったっけ? 俺C++の新機能はそんなに熱心に追ってないけどこれだけは待望してる >>880 ということで、現状はboostじゃないかな これもメンテナンスされてないようだが、マシだと思う 良いライブラリがあったら俺も知りたい
- 903 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 03:34:21.33 ID:zyrTrwHF.net]
- 柔軟な多重配列なんて自分ですぐ作っておしまいな話なのに
なぜ標準にないとかライブラリがないと言い出したり将来の仕様に期待するとか意味不明
- 904 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 03:49:06.16 ID:g2f/LEmv.net]
- numpyを使う。もちろん他にpython併用する理由があればだけど。
ローメジャーなのでメモリ上での向きは個別にやってる。
- 905 名前:デフォルトの名無しさん [2022/04/07(木) 05:59:06.00 ID:kMhdBz2h.net]
- >>880
blas使いたいんならstd::sliceがモロそのものだよ
- 906 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 06:13:35.95 ID:yw7pyl+g.net]
- >>889
やってから言えや 例えば、高速なランダムアクセスとか添字の組と要素番号の間の高速なマッピングとか、どう実装するつもりでいるの?
- 907 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 06:17:36.20 ID:OOyqDhdW.net]
- あるクラスのコンストラクタがvector<int>をとるんだけど、たまにvector<size_t>を渡したいときがあるからオーバーロードするようにしたらambiguousだとエラーが出た
1) ambiguous にならない方法はありますか 2) vector<size_t>の各要素がintの範囲に収まるくらい小さいとき、これをvector<int>にキャストするナイスな書き方はありますか
- 908 名前:デフォルトの名無しさん [2022/04/07(木) 06:40:42.70 ID:kMhdBz2h.net]
- ambigousにはならんようだが
https://ideone.com/YrFYsI
- 909 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 07:18:15.48 ID:3YRGB6r4.net]
- >>892
自作すれば自分の使う方法に合わせてカスタマイズできるから圧倒的に有利 インデックシングも汎用だと毎回多段計算になるが自作なら用途に合わせて最適化できる
- 910 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 08:17:57.53 ID:CaxjwvsJ.net]
- ファイルならまだしもオンメモリーで高速なランダムアクセスとか言語の範囲では工夫しようがなくね?
- 911 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 08:32:07.21 ID:Ym/mh0iz.net]
- 近傍のアクセスが速いというのは言語関係ないしな
- 912 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 10:27:53.88 ID:2nzlX6cZ.net]
- そういえばSTLのコンテナに[]で範囲外アクセスしたとき、デバッグモードだとちゃんとアサート出してくれるけど
あれってSTL実装した人がそう書いたから出るの?それともOSの機能か何か?
- 913 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 10:32:39.68 ID:2HgVVA+6.net]
- 全てそう書いたから出るんだよ
OSはレイヤが違う話
- 914 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 10:39:14.99 ID:2nzlX6cZ.net]
- へえ、じゃやっぱマクロ使ってガシガシ書いてるんだろうね
自分じゃ絶対やりたくないなw
- 915 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 17:34:09.66 ID:mHsgrYEE.net]
- ifdefで括るだけだろ
- 916 名前:デフォルトの名無しさん [2022/04/07(木) 18:22:02.97 ID:kMhdBz2h.net]
- >>898
ルール上、保証がないことでも やってくれてることって、どこにでもあるだろ operator[](size_t)で範囲外アクセスした場合の動作は未定義なので どんな扱いをされても合法なんだよ # 一時期流行った気持ち悪い喩えはもうしない
- 917 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 21:49:18.59 ID:6+zrl0OG.net]
- SNSの気持ち悪いノリ持ち込むなよ
- 918 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 01:44:38.29 ID:jwLlCRWe.net]
- >>900
お客様根性丸出しのプログラマとか・・・
- 919 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 13:06:11.18 ID:NDf9sYGT.net]
- メモリが足らないから64ビットにするとかいうやつがいて
ソース見たら double hoge[300][300][300]; って笑った
- 920 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 13:37:31.78 ID:gSPSOhuN.net]
- 64bit化だけじゃ無理でしょ
スタックサイズを512MBぐらいにしなきゃ
|

|