CやJavaなどのプログラム ソース中のコメントから,モジュール仕様書を書き出すツール。プログラムと文書を同時に管理できる。 コメントは記述形式が固定されており、そのとおりに従うと関数やデータ型、オブジェクトに関する定型的な文書が生成される。htmlやrtf, TeXのほかにmicrosoftのhtmlヘルプファイルなどを生成できる。
bool を返す constexpr function 互換性の関係で引数を省略できない 実装的には、引数は使用せず常に false を返す C++11 の constexpr function なので (void)param; を置いて回避する手は使えない Doxygen に怒られるので仮引数の型だけ残して仮引数をコメントアウトする手は使えない という条件でどうやって compiler, Doxygen, cppcheck の警告を完全回避できるんだ…と思ったんだが、 世の中には同じことを既に解決している人が既に居た。 stackoverflow.com constexpr bool isf…
Doxygenについては、以下の検索をたどってみてください。 Doxygen by Google Doxygen by Bing 本当にこのような高度なレベルのドキュメント生成機能を"GNU General Public Licence"で使わせて頂いていいのかと平身低頭になる強力な解析支援ツールであります。 既に多くの方が使い方、Tipsなどをアップされているので、今さら私がなにかをお伝えするよりも、検索した情報の方が有用ではないでしょうか。 ちなみにですが、Doxygenにお世話になる場合というのが、以下のシチュエーションが多いのが私の実情であります。 基本設計書、機能設計書までは、利用者…
注意!)このページに書かれていることと同じことを行う場合には、Vortex Core の基板番号が "CYKB175_V03 20160511" であることを確認してください。。 私が40%キーボードにはまるきっかけとなった Vortex Core。最近では使う機会も減ってきていましたが、改めて見ると良いキーボードだなと思います。自分で設計した Rect44 も多くの点をパクらせてもらいました。アーキサイトさんが扱っていた国内販売は終了していますが、mechanicalkeyboards.com ではまだ販売しているようです。 このキーボードは、キーカスタマイズが可能(マクロ機能もあり)ですが…
VSCode関連の手順すっ飛ばせばもちろんOpenOCD単体でも使えます 環境 ホスト Win10 21H1 WSL2 kernel 5.10.60.1 Ubuntu 20.04 VSCodeでWSLの設定済 ターゲット NUCLEO-L073RZ <-今回はこっちメインで話し進めます FT232H + STM32F103(Bluepill) <-ほぼ同様の手順で試して動きました 準備 ターゲットソースコード 私の場合はSTM32CubeMXでMakefileプロジェクトを作成して、WSL Ubuntu上でmakeしておきました VSCode WSL側にCortex-Debug拡張を入れる C…
はじめに(長めの前置き) 大前提として、「コードは必ず変更される」ことはエンジニアであれば理解されていると思います。 経験上、コードを書いて1回切りの「作り捨て」にすることはまずありません。 自分が変更するかもしれませんし、他人が変更することもあるでしょう。 よく「三日後の自分は他人」とも言いますが、そう考えるとほとんどの場合、書いたコードを変更するのは「他人」ということになります。 コードを書く際の判断や選択はこの前提を忘れないようにしましょう。 ソフトウェアというのは複雑なものです。 完璧なソフトウェアというのは存在せず、障害が発生したり、ユーザーからの要望を反映しなければならないことがあ…
飽き性な筆者がかろうじて2年くらい書いたり消したりしながら作り続けているゲームエンジン「sinen」だが、やはりこいつを使ってゲームを作ろうとしてもC++で制御するのはだるい。飽き性ならばコンパイルしている間に開発への興味が無くなることに気がついた。そのため、開発の一部で組み込む事を目的としてsinenで採用していたLuaスクリプトを第一言語とした。 これなら開発速度が爆上がりである。 そして、C++側のAPIは既にDoxygenで自動生成しているが、Lua側はおそらく自動化できないので自分で書く必要がある。 というわけで絶賛ドキュメント製作中。 https://astomih.github.…
今日は拡張ライブラリ pathname に Pathname#lutime を追加する機能追加やブロックパラメーター内で splat して受け取るダイナミック変数に _ ではじまる変数を書いた時にブロックの外のスコープの同名の変数を上書きしていた不具合修正などがありました。 [dcc42d4688] 卜部昌平 2022-04-21 05:54:00 UTC C API rb_io_set_nonblock() の Doxygen 用コメントにこの関数で nonblocking mode に設定しても C のレベルの fd に設定されるだけなので ruby の IO#read メソッドなどはブロ…
今日は主に標準添付ライブラリ net/http の Net::HTTPResponse でレスポンスが圧縮されていた場合それを展開したらレスポンスヘッダの Content-Length も追随して変更するようになる変更やドキュメントの修正などがありました。 [aaac279de0] Peter Zhu 2022-04-11 19:37:29 UTC 標準添付ライブラリ rdoc がリンクとして認識する URL の正規表現に URL に使える文字のみ受付けるように文字クラスの指定を追加しています。 [df1594e4b5] Nobuyoshi Nakada 2022-04-13 09:36:56…
変数 C++ BP 関数 C++ BP 変数 C++ 変数の上の行にコメントを入れるとノードやアクターの詳細で表示されます。 // スコア UPROPERTY(BlueprintReadWrite, EditAnywhere) int32 Score; もしくはメタ指定子の "Tooltip" で表示することも可能です。 UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "スコア")) int32 Score; . BP 変数の詳細から Description を設定することで表示できます。 C++ とは違い、Get/S…
ご挨拶 初めまして。スタイル・エッジLABO の しお です。昨年10月に中途で入社してきました。 前職では SQL を書いてデータ調査をしたり巨大なシステムの中で路頭に迷ったり Java を書いたり書かなかったりしていました。 現在は、スタイル・エッジの社内で使用されているとあるシステムの保守開発をさせて頂いています。 日々の業務の中で MySQL を使用してデータ調査用のクエリを組んだりバッチ処理を書いたりしているわけですが、ふと「MySQL の実装ってどうなってるんだ?そもそもこれってどんな仕組みで動いてるの??」と思ったので、今日は実際に MySQL のソースコードを読んでみようと思い…
今日は securerandom のバージョン更新やドキュメントの修正がありました。 [eb40ff73bf] Hiroshi SHIBATA 2022-02-28 10:21:52 UTC 標準添付ライブラリ securerandom の gemspec ファイルでバージョンを 0.2.0 に更新しています。 [bec492c77e] git 2022-02-28 11:10:22 UTC NEWS の default gems のバージョンリストに securerandom の項目を追加しています。 [11bcc0d9d6] Vivek Bharath Akupatni 2022-03-0…
今日は構造体 struct RString のレイアウト修正をして再度 Variable Width Allocation をデフォルトで有効にする変更や Enumerator 内で別の Thread から yield した時のエラー処理に問題があって異常終了してしまう不具合の修正、Proc#dup を継承した子クラスから呼んだ時の不具合修正などがありました。 [39bebd762d] Nobuyoshi Nakada 2022-01-12 09:16:30 UTC 標準添付ライブラリ optparse のドキュメント用のディレクトリに .document ファイルを置いて拡張子 .rdoc …
久しぶりにPythonからc++に戻ったら、 np.arange()やnp.linspace()、そしてnp.append()が使えないことに 強烈なもどかしさを覚えた。 つまり、vector<double>(あるいはvalarrayかただの配列)の等差数列を 始値と差分あたりを指定して生成したり、それらを一発で結合する関数がほしい。 例として、関数double func( double )の値を等間隔で表示したいとき、 もしc++にPythonのnp.arange()に対応する関数ARange()があれば以下のように書ける。 for( auto x : ARange( 10. , 500. …
今日は ObjectSpace の slot を複数まとめて確保して T_CLASS など一部のオブジェクトで拡張情報を埋め込めるようにする Variable Width Allocation をデフォルトで有効にする変更や YJIT で C API の呼び出し時にローカル変数の型情報をクリアして ruby メソッド呼び出しにより変数が変化する可能性に対応する修正などがありました。 [3f9af8a9dc] Nobuyoshi Nakada 2022-01-07 14:55:59 UTC chomp_rs() の doxygen 用コメントの typo 修正。 [be68b3a490] Pet…
技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.1.0 がリリースされました(Ruby 3.1.0 リリース )。今年も Ruby 3.1 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解く…
はじめに 前にDoxygenを使ってドキュメントを生成する記事を書いたのですが、Unityでは外部から導入したファイルの説明も含まれていて分かりづらいと言われてしまいました。 www.hanachiru-blog.com ですので今回は指定フォルダを解析しないように除外する手順をまとめておきたいと思います。 はじめに やり方 解析するフォルダを複数指定する やり方 以下の画像を参考にしながら、Expert -> Input -> EXCLUDEを探してください。 EXCLUDEにファイル・フォルダを追加するあとはこの箇所に除外したいファイル・フォルダを追加してあげればOKです。 例 解析するフ…
はじめに 世界の地震の10%以上が日本で発生している──。巷間よく言われていることですが,先日も東京23区と埼玉県で10年ぶりに震度5強を観測したばかりであり,地震について考えない日はないと言っても過言ではないでしょう。 地震が発生した際に,気象庁のホームページやNHKなどで各地の震度が発表されます。しかし,これを待たずして自作の地震計で震度が分かったら,さらに,震度が分かるだけでなく加速度の波形も記録できたら面白そうです。昨今は加速度センサが簡単に手に入るので*1,地震計というのは電子工作やプログラミングの練習にもちょうどいい題材になるのではないでしょうか? 今回,次回,次々回を合わせて,筆…