209 { B::language } -> std::convertible_to<lang>;
210 typename B::module_type;
219 requires(
typename B::module_type& m,
const char* s,
220 std::remove_cvref_t<
decltype(B::open_module(
221 std::declval<typename B::module_type&>()))> session) {
222 { B::open_module(m) };
223 { B::add_submodule(m, s) } -> std::same_as<typename B::module_type>;
224 B::set_module_doc(m, s);
225 B::close_module(m, session);
226 { B::special_method_name(^^
int) } -> std::convertible_to<const char*>;
227 B::template add_function<std::array<std::meta::info, 1>{^^
int},
228 detail::any_type>(m);
229 B::template add_variable<^^int, detail::any_type>(m, session);
236 requires(
typename B::template class_handle_type<detail::any_type>& cls,
237 typename B::template enum_handle_type<detail::any_enum>& en) {
238 B::template add_constructors<detail::any_type,
239 std::array<std::meta::info, 0>{},
false,
241 B::template add_field<^^int, detail::any_type>(cls);
242 B::template add_method<std::array<std::meta::info, 1>{^^
int},
243 detail::any_type>(cls);
244 B::template add_static_method<std::array<std::meta::info, 1>{^^
int},
245 detail::any_type>(cls);
246 B::template add_operator<std::array<std::meta::info, 1>{^^
int}>(cls);
247 B::template add_enumerator<^^int, detail::any_type>(en);
248 B::template finish_enum<detail::any_enum>(en);
340 requires(std::meta::info e,
lang L,
policy_kind pol, std::meta::info into) {
341 { R::participates(e, L) } -> std::convertible_to<bool>;
342 { R::is_native_base(e, L, into) } -> std::convertible_to<bool>;
343 { R::member_participates(e, L, pol, into) } -> std::convertible_to<bool>;
344 { R::class_member_participates(e, L, pol, into) } -> std::convertible_to<bool>;
345 { R::namespace_participates(e, L, pol, into) } -> std::convertible_to<bool>;
346 { R::counts_as_registered(e, L) } -> std::convertible_to<bool>;
350 -> std::ranges::range;
351 requires std::same_as<
352 std::ranges::range_value_t<
353 decltype(R::template native_bases<^^detail::any_type,
lang{}>())>,