Boost 1.87.0がリリースされました。 リリースノートはいつものように日本語訳したものをboostjpサイトで公開しています。
C++ MIX #12 開催案内
レバテックLABにて情報発信とお金についての記事を書きました
2023年から、私が関わっている情報発信についてスポンサー募集を開始しましたが、そのあたりの考えについて記事を書かせていただきました。
持続的な情報発信、持続的なオープンソースの開発のための取り組みとして参考になれば幸いです。
レバテックLABにて技術書以外の本を紹介する記事を書きました
レバテックLABにてC++本の紹介記事を書かせていただきました
cpprefjp Tシャツを作ります!
2024年もCEDECでcpprefjp所属の方の発表があるので、それに合わせてcpprefjp Tシャツを作ります!
発表者だけでなく、cpprefjpのコントリビューターとスポンサーの方も、実費をいただければ発注します。
この機会に、cpprefjp Webサイトの編集に挑戦くださる方、スポンサーになってくださる方をお待ちしております。
スポンサーは、Open Collectiveで募集しています。スポンサーになっていただいた方は、1年間cpprefjp Webサイトのトップページに、ロゴ画像とリンクを掲載させていただきます。
Tシャツのデザインは以下になります。次の機会はあるかどうかわからないので、この機会にぜひ!
static_assertの比較値をエラーメッセージに表示する
C++のstatic_assert(A == B);
は表明失敗時にfalse
ということしかわからない場合があります。
GCC 12以上、Clang 16以上であれば、比較値をエラーメッセージに表示してくれます。
int main() { constexpr int a = 1; constexpr int b = 2; static_assert(a == b); }
GCC :
prog.cc: In function 'int main()': prog.cc:5:21: error: static assertion failed 5 | static_assert(a == b); | ~~^~~~ prog.cc:5:21: note: the comparison reduces to '(1 == 2)'
Clang :
prog.cc:5:5: error: static assertion failed due to requirement 'a == b' static_assert(a == b); ^ ~~~~~~ prog.cc:5:21: note: expression evaluates to '1 == 2' static_assert(a == b); ~~^~~~ 1 error generated.
それより古いコンパイラの場合は、クラスの非型テンプレートパラメータとして左辺、右辺の値をとり、そのなかでstatic_assert
することで、エラーメッセージにテンプレートパラメータを含むクラス名が表示されるので比較値がわかるようにできます。
template <auto A, auto B> struct static_assert_eq { static constexpr bool value = true; static_assert(A == B); }; int main() { constexpr int a = 1; constexpr int b = 2; static_assert(static_assert_eq<a, b>::value); }
メンバ変数宣言の文脈で使うような場合に、このような2段階のstatic_assert
が必要になります。
struct X { static constexpr int a = 1; static constexpr int b = 2; static_assert(static_assert_eq<a, b>::value); // 文脈的にstatic_assert_eq<a, b>{};はできない };
C++ MIX #9 の日程案内
3年ぶり!C++勉強会「C++ MIX」を開催します!
3年ぶりにC++勉強会を開催します!
C++日本語リファレンスcpprefjpでスポンサー募集をはじめました
C++日本語リファレンスを提供しているcpprefjpプロジェクトで、スポンサー募集をはじめました。
スポンサー募集のサービスとしては、Open Collectiveを使用しています。このサービスの特徴としては、手数料として10%ほど引かれますが、一般社団法人などを作らずとも団体口座をもつことができ、その口座の状況がオープンになるのでオープンソースのプロジェクトで使いやすいサービスとなっています。
私たちのWebサイトは広告をつけていないので、これまでは完全に無償で編集活動を行ってきました。しかしそれでは継続性に問題があるので、編集者に報酬を支払うことで継続的にC++の最新情報をみなさんに提供できるようにしていきます。
追記
スポンサーになっていただいた方はロゴ画像とリンクをcpprefjpのトップページに記載させていただきます。
スポンサーになっていただいた方のOpen Collectiveページに連絡先を記載いただければロゴ画像とリンクについてこちらからご連絡させていただきますが、そうでなければOpen Collectiveの問い合わせフォームからご連絡いただくようよろしくお願いします。