30detail::requires_t<void, detail::is_invocable<T, sub_document>>
31generic_append(core* core, T&& func) {
32 core->open_document();
33 detail::invoke(std::forward<T>(func), sub_document(core));
34 core->close_document();
37template <
typename T,
typename Placeholder =
void>
38detail::requires_t<void, detail::is_invocable<T, sub_array>>
39generic_append(core* core, T&& func) {
41 detail::invoke(std::forward<T>(func), sub_array(core));
45template <
typename T,
typename =
void,
typename =
void>
46detail::requires_not_t<void,
47 detail::is_invocable<T, sub_document>,
48 detail::is_invocable<T, sub_array>>
49generic_append(core* core, T&& t) {
50 core->append(std::forward<T>(t));
54void value_append(core* core, T&& t) {
55 generic_append(core, std::forward<T>(t));
The bsoncxx macro guard postlude header.
The bsoncxx macro guard prelude header.
The top-level namespace within which all bsoncxx library entities are declared.
Provides bsoncxx::v_noabi::builder::basic::sub_array.
Provides bsoncxx::v_noabi::builder::basic::sub_document.
Provides <type_traits>-related polyfills for internal use.