natvisファイルで多次元の動的配列を表示する。賢朽脳瘏スマートフォン用の表示で見る賢朽脳瘏2020-01-13natvisファイルで多次元の動的配列を表示する。Studioでデバッグしている時、例えばSTLなどの中身を綺麗に整頓された状態で監視することが出来る。これを自作クラスに対しても行うことは出来るのだろうか?私は標準ライブラリでは設計上の問題が生じる場合によく自作の機能を設計して使うのだが、それらをデバッグ時に表示できないと困る。結論から言うと、可能だ。natvisファイルを作り、その中にデバッグ中の表示方法を定義すれば良い。基本的な使い方は「natvis」とググれば簡単に見つかるので省略する。Studioのデバッグ機能はうまく表示してくれない。普通の1次元配列はちょっと探せば解説が見つかるし難しくないのだが、多次元配列の場合は少し面倒である。ここにちょっと纏めておく。シンプルな2次元動的配列クラスを考える。3;//このあたりでデバッグを止めて中身を見てみよう。}さてこのとき、mPtrの中身をきちんと2次元配列として表示したい。次のようなnatvisファイルをプロジェクトに追加しよう。</AutoVisualizer>1次元配列と比べて定義しなければならない項目が少し増えている。Directionは配列の方向がどのようであるかを示している。nx]、...のように対応していると解釈される。1]、...のような配置だと推定される。Rankは配列の次元数だ。今回は2次元配列なので、2を与えている。Sizeには、x方向とy方向のサイズを定義する。このとき$iという変数が自動的に与えられるのだが、これが0のときにx方向のサイズを、1のときにy方向のサイズを与える。これは3次元以降の場合も同様で、z以降も$i==2、$i==3、...のときに各値を返すよう定義すればよい。ValuePointerは単にポインタを与えるだけだ。1次元配列と同様である。した応用例としては、OpenCVのMatなども上の定義で何とかなったと記憶している。あれも所詮は2次元(細かな色の数の指定などを考えれば3次元)の配列である。22:31natvisファイルで多次元の動的配列を表示する。Tweet広告を非表示にする関連記事2019-12-03多重ループを一つに纏める直積集合イテレータを作ってみた。loopを理解してからというもの、その悪用を色...2019-11-10ヒープの連続領域内に隙間なく任意のオブジェクトを配置するための補助クラスを作った。通常C++でnew演算子を呼び出すと、ヒープ領域中のどこかに必要...2019-11-04テンプレート再帰回数の限界、再帰回数を減らす実装方法。テンプレートメタプログラミングなどをしていると多用すること...2019-10-06std::functionに与える関数はcopy-constructibleでなければならない。std::functionは関数ポインタも関数オブジェクトもメンバ関数ポ...2019-10-05テンプレートテンプレートパラメータの“テンプレート引数の数”を取得することはできるのだろうか。次のようなクラステンプレートX、Yがあったとする。最新記事std::make_tuple、std::tie、std::forward_as_tupleの違い。natvisファイルで多次元の動的配列を表示する。std::anyとは異なる、動的メモリ確保を行わない動的型を作る。C++用Gnuplotライブラリ更新。std::common_typeの挙動は直感的ではない。(1)月別アーカイブはてなブログをはじめよう!thayakawaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。