17 #ifndef VCSN_MISC_STATIC_HH
18 # define VCSN_MISC_STATIC_HH
52 struct remove_reference<const T&>
88 template <
bool b,
typename T,
typename U>
100 static const bare_t1&
101 choose (
const bare_t1& p1,
106 template <
typename T,
typename U>
118 static const bare_t2&
119 choose (
const bare_t1& ,
135 struct bool_to_type_helper
141 struct bool_to_type_helper<false>
146 # define BOOL_TO_TYPE(Bool) typename vcsn::misc::bool_to_type_helper< (Bool)>::ret
164 template <
bool b,
typename T,
typename U>
170 template <
typename T,
typename U>
183 template <
typename T,
typename U>
186 static const bool value =
false;
189 template <
typename T>
192 static const bool value =
true;
202 template <
size_t N,
size_t P,
bool pair_p = false>
205 static const size_t value =
209 template <
size_t N,
size_t P>
212 static const size_t temp =
214 static const size_t value = temp * temp;
218 struct static_pow_compute<N, 0, true>
220 static const size_t value = 1;
228 template <
size_t N,
size_t P>
231 static const size_t value =
240 template <
size_t N,
size_t P>
243 static const size_t value =
252 #endif // ! VCSN_MISC_STATIC_HH