2024-01-01から1年間の記事一覧
他クラスに対して “メンバ関数単位でのアクセス制限” を実現するイディオム。 template <class T> class Passkey { friend T; Passkey() {} }; class A; class B; class C { public: // クラスAに対してのみ公開 void mfA(Passkey<A>, int arg); // クラスBに対してのみ</a></class>…
C++2c(C++26)標準ライブラリに追加される<rcu>ヘッダについて。Read copy updateの略。 // C++2c #include <atomic> #include <mutex> // scoped_lock #include <rcu> struct Data { int m1; /*...*/ }; std::atomic<Data*> data_; // new確保された初期値が別途設定される前提 void multiple</data*></rcu></mutex></atomic></rcu>…
C++2c(C++26)標準ライブラリに追加される多次元部分ビューstd::submdspanについて。 // <mdspan>ヘッダ namespace std { template< class T, class E, class L, class A, class... SliceSpecifiers> constexpr auto submdspan( const mdspan<T, E, L, A>& src, SliceSpecifiers..</t,></mdspan>…
GCCコンパイラの -pedantic オプションについてメモ。 pedantic 形容詞 〈侮蔑的〉〔文法・学問的なことなどについて〕重要でない事にこだわり過ぎる、学者ぶった、知識をひけらかす、衒学的な https://eow.alc.co.jp/search?q=pedantic GCC 2.95.3マニュア…
プログラミング言語C++において、nodiscard属性が指定された関数に対し意図的な戻り値破棄を明示する方法。まとめ: C++23現在は、方式(3) std::ignoreへの関数戻り値代入が実践的か。*1 C++2c(C++26)以降は、方式(4) プレースホルダ識別子_(アンダースコア…
C++23標準ライブラリの多次元ビューstd::mdspan(→id:yohhoy:20230303)における、第4テンプレートパラメータAcssesorPolicyを用いた要素アクセスカスタマイズの具体事例。C++2c(C++26)標準ライブラリ採用が決定している線形代数基本アルゴリズム <linalg> ヘッダで</linalg>…