C++に関する情報を共有するためのグループです。
はてなブログを持っていれば、誰でも参加できます。
他クラスに対して “メンバ関数単位でのアクセス制限” を実現するイディオム。 template <class T> class Passkey { friend T; Passkey() {} }; class A; class B; class C { public: // クラスAに対してのみ公開 void mfA(Passkey<A>, int arg); // クラスBに対してのみ公開 v…
chaploud-blog.hatenablog.com Sci-Lisp自作のN日目です。途中で更新が途絶えかけていましたが、Sci-Lisp自体は毎日せっせとUpdateを続けていました。 github.com v0.1.0 作りながら、Rustの勉強をしつつインタプリタの勉強をしていた状態で、現状の設計ではある種の限界を迎えました。 まず第一に、実行速度が圧倒的に遅い。単純にforループを1…
GetLastError() 関数から返されるシステムエラーコードに対応するエラーメッセージ文字列を取得するために、SystemMessageクラスを書きました。 定番の処理なので車輪の再発明なのは分かっていますが、新しい C++ で書きたいよね。string_view 大好き! ってなわけで、このSystemMessageクラスは単純で安全なリソース管理をします。 // SystemMessag…
std::mapを線形配列に落とし込むことで、イテレータ走査やメモリレイアウトを効率化したflat_mapについては以前説明しました。 flast.hateblo.jp 当時私が実装したflat_mapはArray of Structure(AoS)形式の実装で、構造体を線形配列に配置するものでした。これはキーと値がメモリ上で並んだ位置に配置されるので、キーから検索した直後に値を使う場合にはキャッ…
■前回記事からの続き JEPG画像の入出力に関する記事を書いた後、 mame-mame.hatenadiary.com JPEG画像に対してフィルタ処理を実行する記事を書きました。 フィルタ処理用にフィルタクラスを定義しました。 mame-mame.hatenadiary.com そして、フィルタクラスをライブラリ化して利用するように編集しました。 mame-mame.hatenadiary.co…
TensorFlow for Java これで開発するための環境構築です。 インストールするのはMavenとTensorFlowです。詳細は下のリンク先に記載しています。 ここでは、用途とか自分の意図などを記載したいと思います。 なぜ?TensorFlow? 皆さんご存知の人口知能です。でも本当は機械学習処理のフレームワークがこれです。 そして、これができたおかげで、統計学の考え方で、写真や音声な…
テンプレートクラスにフレンド演算子を定義しようとした時に嵌ったのでメモ。 新たに作ったテンプレートクラスに対する演算子を定義しようとする時、それらをフレンド演算子にすることはままあると思う。管理人もそのような場面に出くわし、素直に定義しようとしたところ思いの他嵌ってしまった。 結論から言うとテンプレートフレンド演算子を定義する時は、以下のようにする(他の方法があるかどうかは調べていない)。 #in…