2012-02-16から1日間の記事一覧

clang に constexpr が実装された

C++

[C++11 Implementation status] [適当なテスト] constexpr int plus(int a, int b){ return a + b; } constexpr int power(int x, int n){ return n == 1 ? x : x * power(x, n-1); } struct X{ constexpr X(int value) : value(value){} constexpr bool ope…

関数の戻り値が constexpr かどうかを判定する

C++

そんな感じの constexpr 関数を書いてみました。 まさに誰得。 [ソース] #include <type_traits> template<typename T> constexpr bool true_(T){ return true; } template<typename T, typename ...Args, bool = true_(T{}(Args{}...))> constexpr bool is_constexpr_impl(bool&&){ return true; } template<typename T, typename ...Args> constexpr…</typename></typename></typename></type_traits>